Pictures

advertisement
Computer Science 101
Picture Files
Computer Representation
of Pictures

Common representation is as a bitmap.
• Two dimensional array of dots called pixels
(picture element).
• The array consists of rows and columns of
pixels.
• With the RGB system, each pixel has
associated a 3-byte RGB value.
Picture from W&L Home Page
(stored as bmp file)
At 800%
At 2400%
How does the software know?

We know that all of the information stored
in a computer file is stored as bits, broken
into 8-bit bytes.

How does the software know whether this
binary data is to be interpreted as text,
picture, music, program instructions, etc.
File extensions

As you know, files are usually stored as
• Name of file
• A dot (or period)
• An extension that indicates the general
category of the file.
Some common extensions

.txt
.doc
.docx
.pdf
.msg
.ppt
.xls
.bmp
.jpg
.mp3
.wav
Plain text
Microsoft word document
Microsoft Word Open XML Document
Portable Document Format File
Outlook mail message
Powerpoint presentation
Excel spreadsheet
Bitmap image file
JPEG image file
Mp3 audio file
Wave audio file
Some common extensions (cont.)

.log
.mov
.mpg
.exe
.html
.zip
.java
.py
Log file
Apple QuickTime movie
MPEG video file
Executable file
Hypertext Markup Language file
Zipped file
Java source file
Python source file
Extension is not enough

Often the software needs more information than is
conveyed by the extension.

A .bmp file stores the RGB values for each pixel,
thus 24 bits in 3 bytes for each
pixel.

Suppose there is RGB
information for 100 pixels. Is
the picture a 10 by 10, 25 by 4,
5 by 20 or what? Many other such questions.
File headers

Many file formats specify how some needed
information is to be stored in the beginning of the
file.

The extension tells the type of format being
used; the file header encodes additional
information needed by the software accessing the
file.

File has
• Header information
• File data
BMP File Header

For more on this topic see
• http://www.fastgraph.com/help/bmp_header_
format.html
• http://en.wikipedia.org/wiki/BMP_file_format
#BMP_File_Header
BMP Header (from Fastgraph)
BMP Header (cont.)

Offset:
• How many bytes into the file the specified information
is located. Here we have 0; so this information is at
the very beginning of the file.
• In this table the offset is given in decimal; we’ll need
to use hexadecimal. Get ready to convert.

Size: How many bytes are used for the information.
BMP Header (cont.)

Signature:
• Identifies the kind of file data
• Often 2 byte information has the information in “right
to left” order.
• Here the 42 in hex is 66 in decimal. The 4D is 77 in
decimal.
• 66 is ASCII for B, and 77 is ASCII for M.
• BM is confirming that the data is bitmap data.
BMP Header (cont.)

Start of image data:
• Where the RGB values are found.
• Let’s remember that the offset 10 is A in hex.
• Also remember that this information is 4 bytes long.
BMP Header (cont.)

Width:
• At offset 18 decimal or 12 hex.
• 4 bytes.

Height
• At offset 22 decimal or 16 hex.
• 4 bytes.
BMP Header Summary

Some of the header info (offsets in hex):
• Signature at offset 0 – 2 bytes
• File size at offset 2 – 4 bytes
• Offset for start of image data at offset A – 4
bytes
• Width in pixels at offset 12 - 4 bytes
• Height in pixels at offset 16 – 4 bytes
96 pixels
So each square is
24 by 24
Colored Squares with Hex Editor

We see the 42 4D at offset 0
File Size (offset 2)

We see 366C for size.
• Actually bytes are right to left so 6C36. Converting this
to decimal gives 27702 bytes.
• We have 96 by 96 or 9216 pixels
• 3 bytes per pixel for RGB; so 27648 data bytes
• Plus the 54 bytes in the header giving 27702
Width and Height
(offset 12 and 16)

We see 60 for both the width and height. In
decimal this would be 96.
Bitmap Data Location (offset A)

We see 36 at location A. This means that the
bitmap data begins in location 36.
Bitmap Data (offset 36)

At location 36, we see values FF 00 FF.
• But the upper left square has red pixels.
• The BMP documents specify bottom row first.
• Red and Blue give the purple color.
Bitmap Data – Color Change

In the bottom row, there are 24 purple pixels,
FF 00 FF. Then we see FF 00 00 24 times.
• This would seem to indicate Red.
• Again, the BMP specifications indicate the colors will be in BGR
order.
Suzie
Pup
 Now

Download