Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image
Sell yours for a Gift Card
We'll buy it for $21.86
Learn More
Trade in now
Have one to sell? Sell on Amazon

Compressed Image File Formats: JPEG, PNG, GIF, XBM, BMP Paperback – August 29, 1999

ISBN-13: 978-0201604436 ISBN-10: 0201604434
Buy new
Temporarily out of stock.
Order now and we'll deliver when available.
Order now and we'll deliver when available. We'll e-mail you with an estimated delivery date as soon as we have more information. Your account will only be charged when we ship the item.
Ships from and sold by Amazon.com. Gift-wrap available.
List Price: $59.99 Save: $5.01 (8%)
Compressed Image File For... has been added to your Cart

Used & new from other sellers Delivery options vary per offer
26 used & new from $43.71
Amazon Price New from Used from
Hardcover, Import
"Please retry"
Paperback, August 29, 1999
"Please retry"
$54.98 $43.71
Free Two-Day Shipping for College Students with Amazon Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student

Hero Quick Promo
Save up to 90% on Textbooks
Rent textbooks, buy textbooks, or get up to 80% back when you sell us your books. Shop Now
$54.98 FREE Shipping. Temporarily out of stock. Order now and we'll deliver when available. We'll e-mail you with an estimated delivery date as soon as we have more information. Your account will only be charged when we ship the item. Ships from and sold by Amazon.com. Gift-wrap available.

Frequently Bought Together

Compressed Image File Formats: JPEG, PNG, GIF, XBM, BMP + JPEG: Still Image Data Compression Standard (Digital Multimedia Standards) (Digital Multimedia Standards S)
Price for both: $272.53

One of these items ships sooner than the other.

Buy the selected items together

Editorial Reviews

Amazon.com Review

Compressed Image File Formats is an appealingly compact and useful guide to some of today's most popular file formats used for image data. For any programmer who needs to know how images are stored, this concise reference can serve as a really invaluable resource.

Besides full coverage of the popular BMP, GIF, and PNG file formats, the book zeroes in on the JPEG standard, perhaps today's most popular (and most complicated) image format. In a series of short chapters, the book looks at JPEG in detail, from basic file organization (its format and marker fields), file compression techniques (like Huffman coding and DCT), and how to decode (read) and encode (write) JPEG images. By condensing hundreds of pages of specifications and documentation from the voluminous JPEG standard into this short volume, the author has created a worthwhile summary of key JPEG features and compression techniques useful to any graphics programmer.

The book also includes C++ code for a simple JPEG encoder (on the accompanying CD-ROM). This example can get you started compressing images using the JPEG format. In addition, the book discusses techniques for creating and decoding progressive JPEGs (used for downloading images in stages, in progressively finer resolutions, over the Internet).

Whether you are a programmer faced with decoding or encoding image data, or an interested Webmaster who wants to know the pros and cons of today's image file formats, Compressed Image File Formats provides a worthwhile and concise reference to what's inside image files. --Richard Dragan

Topics covered: bitmap basics, color models, Windows BMP file format, XBM file format, JPEG basics and file format, JPEG File Interchange Format (JFIF), JPEG Huffman Coding, data unit encoding, Discrete Cosine Transform (DCT), matrix operations, JPEG decoding and encoding, progressive JPEG, GIF file format and compression, and PNG file format.

From the Inside Flap

The purpose of this book is to instruct the reader on how to write software that can read and write files using various 2-D image formats. I wanted to write a book that explains the most frequently used file formats with enough depth for the reader to implement them, as opposed to one that covered many different formats at a high level or one that avoided the more difficult image formats. As a result, I chose to cover the image file formats that are associated with Web browsers. Those covered in this book (BMP, XBM, JPEG, GIF, and PNG) represent the vast majority of image files that can be found on the Internet. They employ a wide range of encoding techniques and range in implementation difficulty from simple to very complex.

The inspiration for this book was my own frustration resulting from the lack of information on how to implement encoders and decoders for the more complex file formats. Most of the information available was at too high a level, left major gaps, or was very difficult to decipher. I have tried to create a bridge between the programmer and the standards documents.

One issue I faced at the start of this project was which programming language to use for the examples. The intention was to create a book on graphics file formats rather than one on how to write programs to read and write graphics files in a particular language. Therefore, I debated using a language that is easy to read (e.g., Pascal or Ada) or the one most people are likely to use (C++). In the end I felt that its widespread use made C++ the best choice. To make the examples more understandable for non-C++ programmers, I have carefully avoided certain C++ language constructs (e.g., expressions with side effects and integer/boolean interchangeability) that would make the code difficult for them to understand.

In order to make the encoding and decoding processes as clear as possible, I have used a Pascal-like pseudo-code. C++ is used for complete function implementations and pseudo-code for illustrative fragments. These fragments generally contain no error checking.

Because of their generally large size, it was not possible to include working source code for the formats in the book itself. Instead, the accompanying CD-ROM contains the complete source code for encoders and decoders for almost all of the image formats covered. The reader should use the pseudo-code in the text to learn how processes work and the C++ examples on the CD to see how to implement them.

Generally, the decoders implement more features than the encoders. In the decoders I have implemented all of the features needed to decode files that a reader will have any likelihood of encountering on the Internet. For the sake of clarity, the encoders generally implement a smaller feature subset.

In writing the programming examples I have given clarity precedence over execution efficiency and instant portability. The source examples will compile, without modifications, on Microsoft Windows using both Borland C++Builder V3.0 and Microsoft Visual C++ V5.0. Other compilers generally require some modifications to the code.

The descriptions of the encoders and decoders for the various file formats frequently employ the term "user" to describe the source of certain input parameters to the encoding or decoding process. By this I mean the user of the encoder or decoder, not necessarily the person typing at the keyboard. Since image encoders and decoders are incorporated into other applications, such as image viewers and editors, the user in this case would most likely be another piece of software. However, in many situations the "user" application may get some of these parameters directly from a human.

Just as this is not intended to be a book on C++ programming, it is also not intended to be a book on programming in a specific environment. For that information readers will need a book for their particular system.

A project as large as producing a book requires the involvement of many people. Mike Bailey, Eric Haines, Tom Lane, Shawn Neely, and Glenn Randers-Pehrson reviewed the manuscript and provided many invaluable suggestions. Glenn also arranged for me to get the latest proposed PNG standards for the CD. My fellow aviator, Charlie Baumann, was kind enough to provide several of the photographs. Ralph Miano and Margaret Miano assisted with preparing the manuscript. Jean-Loup Gailley answered all my questions on ZLIB. Albert "The Chipster" Copper compiled examples on systems I did not have access to. Most important, Helen Goldstein at AWL guided the process from start to finish. John M. Miano
Summit, New Jersey
miano@colosseumbuilders 0201604434P04062001


Shop the new tech.book(store)
New! Introducing the tech.book(store), a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Product Details

  • Paperback: 288 pages
  • Publisher: Addison-Wesley Professional (August 29, 1999)
  • Language: English
  • ISBN-10: 0201604434
  • ISBN-13: 978-0201604436
  • Product Dimensions: 7.3 x 0.3 x 9.1 inches
  • Shipping Weight: 1 pounds (View shipping rates and policies)
  • Average Customer Review: 3.9 out of 5 stars  See all reviews (10 customer reviews)
  • Amazon Best Sellers Rank: #739,460 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

3.9 out of 5 stars
Share your thoughts with other customers

Most Helpful Customer Reviews

43 of 45 people found the following review helpful By A Customer on September 27, 1999
Format: Paperback
I had the opportunity to examine this book both in manuscript and published form, and I must say that I am quite impressed. It provides good overview and detailed implementation notes with source code examples for a variety of image formats. The chapters dedicated to JPEG explore many aspects of the standard and offer suggested implementation notes for both compression and decompression, and the book would be valuable based on this information alone. The remaining chapters discuss the common GIF format and its patent-free successor (PNG) as well as other compressed image formats in regular use. Source code examples in C++ are included in the enclosed CD-ROM along with sample images. In summary, Miano's book provides a sturdy reference for graphics programmers or anyone interested in the details of today's most popular image formats.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
10 of 11 people found the following review helpful By V. Jonkers on May 5, 2004
Format: Paperback
If you know very little about the technical aspects of file formats, and you want to write your own applications, then this is the book you are looking for.
BUT, if you have limited experience in programming (visual C++ eg.) then this might not be the book for you. Don't expect full source code, it only shows you the way to do it (and adequatly at that). You really need to know the basics of data structures and dictionaries otherwise you won't go much further as reading/writing bitmaps.
Also a bit of knowledge about discrete cosine (Fourier) transforms really helps, otherwise JPEG seems like a magic formulae (and I alway want to know what I'm doing :)
But all in all this is a great book to start from, it really contains all the information you need to handle(read.write):
-PNG files.
Another reviewer complained about incompleteness of the JPEG section, but this standard is so vast that a complete volume could be written about it. The book covers the JFIF file format which 99.9% of the file on the web are.
Enjoy this book! and no, I'm NOT the author!:)
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
5 of 5 people found the following review helpful By calvinnme HALL OF FAMETOP 1000 REVIEWERVINE VOICE on March 4, 2007
Format: Paperback
This book is about the last one written on the subject of graphics file formats, because this information can be found on the web and also because the number of image file formats and details necessary to write a meaningful book would result in a tome of mammoth size. The author of this little book did things right - he just picked five graphics file formats and covered them well. Chapter one is just a quick introduction to various aspects of graphics file formats and an introduction to terminology so you will understand why compressed image file formats work the way that they do in general.

Next the book gets into the file formats themselves by starting with one of the simplest file format to code and decode, Windows BMP. The next file format covered is the very simplest in the book - XBM. This file is also almost always used in the Windows environment. The next eight chapters and 135 pages are dedicated to explaining the JPEG format. Even the author admits that you will need to resort to outside references if you want to fully implement and understand the standard, but he gets you 90% of the way there. He restricts himself to explaining only sequential and progressive JPEG with Huffman coding and 8-bit samples. The author also does a great job of explaining the DCT, which is the basis of the JPEG format. If you haven't been able to find a good explanation of the DCT, try this book. The next chapter in the book is on GIF, and the author explains not only how to decode and encode the format, he also discusses the legal problems that have pretty much put an end to commercial GIF encoder/decoder development. The last three chapters are dedicated to the PNG file format and how to encode and decode them.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
Format: Paperback Verified Purchase
Several years ago, I received a grant to study steganography, which is the process of embedding secret messages in ordinary messages. In my case, I was working on changing the incidental bit values in image files so that they stored messages. Doing this requires a complete understanding of how the image files are stored and I used this book as my primary resource. From it, I found it easy to learn the basic bit patterns and structures used to store images and with that, I could write programs to manipulate the image files. Later, when I was teaching a course in computer security, one of the major exercises was in decrypting messages hidden in image files. My work in this area was presented at a national computer conference.
Over the last two years, I supervised a research project with a student where he used neural networks to identify image files that contained text messages. The goal was to identify junk e-mail messages (spam) that were images of text. Such image files were used to defeat filters that would flag spam messages based on the presence of keywords. When he started the project, the first thing I did was give him a copy of this book so that he could understand the structure of the image files and learn what to code for. His project was a success; he presented his work at a regional computer conference.
This book presents the structure of the primary types of image files in a manner that is easy to understand. As I have already mentioned, it was a primary resource for two successful research projects, so if you need to know the structure of image files, this is the first book that I would recommend.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again