how to view pdf file in asp.net c# : Extract image from pdf in SDK software project winforms .net asp.net UWP cips2ed29-part1026

17.4. HIDING IMAGES IN IMAGES
269
image arrays.
It is easy to extract the watermark from the image. Use the mainas
program from chapter 8 to subtract the original from the image with the
hidden watermark.
17.4 Hiding Images in Images
Steganography enables hiding an image in another image. A message image
hides in a cover image. Hiding alters the cover image, but the alterations are
too slight to see. The process permits recovering the message image later,
and the recovered message image matches the original exactly.
This is possible because images contain too much information. Common
eight-bit gray scale images have 256 shades of gray. People can distinguish
only about 40 shades of gray. The extra gray shades are useless. The same
is true for color images. Images that use 24 bits per pixel have 16 million
possible colors | too many to be useful.
Eight-bit gray scale images have more bits that are needed. Steganogra-
phy uses the unneeded bits to hide the message image. Steganography stores
the bits from the message image in the least signicant bits of the cover im-
age. No one can see the dierence in the altered cover image, because no one
can tell the dierence between a 212 and a 213.
Figure 17.5 shows an example of how three pixels from a message image
hide in a cover image. The rst part of the gure shows the three pixels from
the message image. The second part of the gure shows three rows of eight
pixels from the cover image. The last part of the gure shows the same three
rows of eight pixels after the three message image pixels were hidden. The
least signicant bits of the cover image are holding the message image pixels.
The pixel 99 from the cover image has bits 0110 0011. To hide the 0
(the rst bit) requires clearing the least signicant bit of the rst pixel of
the cover image. The 90 pixel remains 90 because its least signicant bit
is already a 0. The next two bits of the message image pixel are 1, so set
the least signicant bit of the next two pixels in the cover image. The 82
becomes an 83, and the 89 remains an 89. This process continues as every
pixel in the cover image has its least signicant bit cleared or set depending
on the bit values of a pixel in the message image.
There is an eight-to-one limitation in this process. Each pixel in the
message image has eight bits. Therefore, it needs one bit from eight dierent
Extract image from pdf in - Select, copy, paste PDF images in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document
extract pdf images; extract images pdf
Extract image from pdf in - VB.NET PDF Image Extract Library: Select, copy, paste PDF images in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document
extract pictures pdf; extract images from pdf online
270
CHAPTER 17. STEGANOGRAPHY: HIDING INFORMATION
Three pixels from message image
- 99
-103
-105
Three by eight pixels from cover image
- 90- 82- 88-115-148-155-126- 90-
-119-103- 80- 76- 99-131- 91- 43-
-164-120- 85- 63- 59- 80-120- 91-
Three by eight pixels from cover image
after hiding the message in the image pixels
- 90- 83- 89-114-148-154-127- 91-
-118-103- 81- 76- 98-131- 91- 43-
-164-121- 85- 62- 59- 80-120- 91-
Figure 17.5: Hiding Message Image Pixels in a Cover Image
VB.NET PDF Text Extract Library: extract text content from PDF
Extract highlighted text out of PDF document. Image text extraction control provides text extraction from PDF images and image files.
extract pdf pages to jpg; extract photos from pdf
C# PDF Text Extract Library: extract text content from PDF file in
Ability to extract highlighted text out of PDF document. Image text extraction control provides text extraction from PDF images and image files.
extract jpg pdf; extract photos pdf
17.4. HIDING IMAGES IN IMAGES
271
pixels in the cover image. The cover image must be eight times wider than
the message image.
Figures 17.6 through 17.9 illustrate hiding a message image in a cover
image. Figure 17.6 is the message image and Figure 17.7 is the original cover
image. Figure 17.8 is the cover image after hiding the message image in
it. Figures 17.7 and 17.8 are indistinguishable by visual inspection. The
dierence becomes apparent only when examining the pixel values like in
Figure 17.5. Many of the pixel values of Figure 17.8 are one-o those in
Figure 17.7.
Figure 17.6: The Cover Image
Figure 17.9 shows the message image after uncovering it from Figure 17.8.
Figures 17.6 and 17.9 are exactly alike. The hiding and uncovering process
did not alter the message image.
Listing 17.2 shows the source code that produced Figures 17.6 through
17.9. The listing starts with the main program that calls the subroutines to
either hide or uncover a message image. This interprets the command line,
ensures the input images exists, and checks their dimensions. The dimensions
are critical.
Further down in listing17.2showsthesubroutines hide
image and hide
pixels.
Thehide
image routine reads the messageand coverimages, calls the hide
pixels
routine, and writes the result to the cover image le. The h
counter loop runs
through the width of the message image. The main calling routine ensured
that the cover image is eight times wider than the message image.
The hide
pixels routine does most of the work in the hiding operation. It
must determine the value of every bit in every pixel in the message image.
It must then set or clear the least signicant bit of every pixel in the cover
image accordingly. The routine uses two mask arrays to determine and alter
C# PDF insert image Library: insert images into PDF in C#.net, ASP
C#.NET PDF SDK - Add Image to PDF Page in C#.NET. How to Insert & Add Image, Picture or Logo on PDF Page Using C#.NET. Add Image to PDF Page Using C#.NET.
extract photo from pdf; some pdf image extractor
VB.NET PDF insert image library: insert images into PDF in vb.net
VB.NET PDF - Add Image to PDF Page in VB.NET. Insert Image to PDF Page Using VB. Add necessary references: RasterEdge.Imaging.Basic.dll.
how to extract images from pdf; how to extract images from pdf file
272
CHAPTER 17. STEGANOGRAPHY: HIDING INFORMATION
Figure 17.7: The Message Image
Figure 17.8: The Cover Image with the Message Image Hidden In It
C# Create PDF from images Library to convert Jpeg, png images to
Best and professional C# image to PDF converter SDK for Visual Studio .NET. C#.NET Example: Convert One Image to PDF in Visual C# .NET Class.
how to extract images from pdf files; extract images from pdf
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
Page: Extract, Copy and Paste PDF Pages. Easy to Use C# Code to Extract PDF Pages, Copy Pages from One PDF File and Paste into Others in C#.NET Program.
some pdf image extract; extract image from pdf java
17.4. HIDING IMAGES IN IMAGES
273
Figure 17.9: The Unhidden Message Image
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
example that you can use it to extract all images from PDF document. ' Get page 3 from the document. Dim page As PDFPage = doc.GetPage(3) ' Select image by the
how to extract a picture from a pdf; extract jpg from pdf
VB.NET PDF Form Data Read library: extract form data from PDF in
PDF software, it should have functions for processing text, image as well tell you how to read or retrieve field data from PDF and how to extract and get
how to extract text from pdf image file; extract images from pdf files without using copy and paste
274
CHAPTER 17. STEGANOGRAPHY: HIDING INFORMATION
bits. The loop over i covers all the rows of the message and cover images.
On each row, the loop over j examines each of the eight bits in the message
image’s pixel. The code then sets or clears the least signicant bit of the
corresponding pixel of the cover image.
The if(lsb) code is necessary because some images place the least sig-
nicant bit rst while others place it last (the old Intel and Motorola bit
order issue). Depending on the bit order, the subroutine uses either mask1
or mask2 to set or clear bits.
Listing 17.2also shows the subroutines uncover
imageand uncover
pixels.
These reverse the hiding process, so they are similar to the hiding. The
uncover
image routine reads the cover image, calls uncover
pixels for every
pixel in the image, and writes the recovered message image to disk.
The uncover
pixels routine does most of the work. It must determine if
the least signicant bit of each pixel in the cover image is 1 or 0. It then uses
these bits to build up the eight bits in every pixel in the message image. The
loop over i runs through every row in the images. The loop over j looks at
eight pixels in the message image. If a pixel is odd, its least signicant bit is
1, so the corresponding bit in the cover image must be set using the mask1
bit mask. Clearing bits is not necessary because the new
message variable
was set to 0x00 prior to the loop over j.
17.5 Extensions
There are several extensions tothe concepts presented here such as increasing
the storage eciency and hiding executable programs and text in images.
The most obvious limitation to the image hiding shown earlier is the cover
image must be eight times wider than the message image. This means using
anarrow message image (Figure 17.6) and a wide cover image (Figure 17.7).
This ratio can be reduced to three to one. Instead of using the least
signicant bit of the cover image, use the two least signicant bits. The
cover image may change from gray shade 128 to 131 when hiding the message
image. People cannot see that. The other part of increasing eciency is to
reduce the message image from eight-bit pixels to six-bit pixels. This means
64 shades of gray instead of 256. People can only see 40 shades of gray, so
64 is plenty. The six-bit pixels in the message image are hidden in two bits
in the cover image. Hence the three to one ratio. Implementing this scheme
would require changes in the routines shown in listing 17.2.
17.6. CONCLUSIONS
275
Steganography enables hiding executable programs inside images. In the
previous discussion, the message image was a series of eight-bit values. An
executable program is also a series of eight-bit values. The least signicant
bits of thecover image can hold thebits ofthe executable program. The cover
image must contain eight times more pixels than the executable has bytes
(four times more pixels if you use the two least signicant bits as explained
earlier). Uncovering the executable program from the cover image is just like
uncovering the message image.
In the same manner, the cover image can hide a text le. The text le
is a series of eight-bit bytes. The least signicant bits in the cover image
can hide the eight-bit text bytes. The cover image must contain eight times
more pixels (or four times) than the text message. This use of steganography
allows you to hide a message in an image, send the image to a friend (ftp or
web site), and have them read it. The whole world can see the image without
reading the message or even suspecting a message exists.
17.6 Conclusions
Steganography works as a technique to hide information in plain sight. Wa-
termarks and copyrights can be placed on an image to protect the rights of its
owner without altering the appearance of the image. Almost like magic, im-
ages, executable programs, and text messages can hide in images. The cover
image does not appear altered. People look at the cover image and never
suspect something is hidden. Your information is hidden in plain sight.
17.7 Reference
17.1 \Exploring Steganography: Seeing the Unseen," Neil F. Johnson, Sushil
Jajodia, Computer, February 1998, pp. 26-34.,
http://patriot.net/
~
johnson/Steganography.
276
CHAPTER 17. STEGANOGRAPHY: HIDING INFORMATION
Chapter 18
Command-Line Programming
18.1 Introduction
This chapter will discuss using DOS .bat les. The previous chapters all
included stand-alone application programs that applied image processing op-
erators to entire image les. This chapter will show how to sequence these
operators in a .bat le program. The same principles apply to writing UNIX
scripts. I do not cover UNIX scripts here, but UNIX users will understand
how to apply the same ideas to that ne system.
18.2 Batch Programming with .bat Files
Previous chapters included programs that processed entire image les. These
programs were all command-line driven. Command-line programs can be
dicult to use because you must remember the obscure command sequence.
Asignicant advantage of command-line programs is the user can call
them from a .bat le. This is good because we often need to perform more
than one operation on an image. There is usually pre-processing, processing,
and post-processing as well as repetitive and comparative processing.
A.bat or batch le is a unformatted text le containing DOS commands.
Batch program are run from the DOS prompt, and they call each of the
commands they contains.
Batch les have two advantages. The rst is they save typing long com-
mands over and over. This is a physical advantage that applies to all situ-
ations. The second advantage is batch les permit performing useful image
277
278
CHAPTER 18. COMMAND-LINE PROGRAMMING
rem
This is a simple .bat file
echo off
echo Hello World
copy a.doc b.doc
Figure 18.1: A .bat File
processing. A batch le can perform the same operation on a series of im-
ages, perform a series of similar operations on one image, and perform a
long processing string on an image. The examples below will illustrate these
advantages.
18.3 Basics of .bat Programming
Before launching into the examples, let’s review a few basics of DOS batch
le programming. All texts on DOS, such as the DOS manual, discuss .bat
le programming. I’ll cover the features used in the examples below.
Figure 18.1 shows a basic .bat le. The rst line begins with rem and is
aremark or comment. The rem places comments anywhere in the le. The
second line turns o all echoing or displaying to the screen. Without the echo
o, the .bat would display every statement as they executed. The third line
displays the words Hello World on the screen. All echo statements except
echo o display text to the screen. The nal line is the DOS copy command.
It copies le a.doc to le b.doc. Saving this le as rst.bat and typing the
DOS command:
rst
would display the message Hello World and copy le a.doc to b.doc.
Figure 18.2 is the same as Figure 18.1 except the last statement. It uses
the % sign to allow replaceable parameters on the command line. Saving this
le as second.bat and typing the DOS command:
second a.doc b.doc c:
would display the message Hello World and copy the le a.doc to the le
c:b.doc. The .bat le would replace %1 with a.doc (the rst parameter), %2
with b.doc (the second parameter), and %3 with c: (the third parameter).
Notice how %3%2 becomes c:b.doc. You can concatenate %s to make path
names.
Documents you may be interested
Documents you may be interested