by James D. Murray and William vanRyper
This book is primarily for graphics programmers, but it's also for application programmers who need to become graphics programmers (if only for a little while). Although we didn't anticipate, in the first edition, that the book would be useful to graphics illustrators, we found that it was. In this second edition of the book and the CD-ROM, we've tried to provide additional resources for this audience. The book is also for anyone who needs a quick way to identify a graphics file of unknown origin. If you're not a graphics programmer, but want to get up to speed quickly, you'll find that Part One of the book requires little prior knowledge of computer graphics. It will help you become familiar with concepts associated with the storage of graphics data. In fact, a working knowledge of a programming language is useful, but not absolutely essential, if you're only looking for the big picture.
If you just want some background on graphics file formats, you might want to read Part One and refer, as needed, to the articles in Part Two and the appendices in Part Three. If you're in search of implementation guidance, you will want to refer to the articles and example code. Of course if you're a computer graphics professional, you might be interested primarily in the specification documents and tools on the CD-ROM.
In the unlikely event that you are creating your own new graphics file format, we fervently hope that this book provides you with some perspective on your task, if only by exhibiting the decisions--good and bad--that are frozen in the formats described in these pages.
This book is divided into three parts.
Part One, Overview, is an introduction to those computer graphics concepts that are especially helpful when you need to work with graphics file formats.
Chapter 1, Introduction, introduces some basic terminology, and gives an overview of computer graphics data and the different types of graphics file formats used in computer graphics. This chapter also lists all of the formats described in this book.
Chapter 2, Computer Graphics Basics, discusses some concepts from the broader field of computer graphics that are necessary for an understanding of the rest of the book.
Chapter 3, Bitmap Files, describes the structure and characteristics of bitmap files.
Chapter 4, Vector Files, describes the structure and characteristics of vector files.
Chapter 5, Metafiles, describes the structure and characteristics of metafiles.
Chapter 6, Platform Dependencies, describes the few machine and operating system dependencies you will need to understand.
Chapter 7, Format Conversion, discusses issues to consider when you are converting between the different format types (e.g., bitmap to vector), as well as between formats within a type (e.g., vector to vector).
Chapter 8, Working With Graphics Files, describes the issues that come up when you read, write, and test graphics files. It also covers the corruption and encryption of graphics files, the potential for virus infection in those files, and the issues involved in writing your own file formats and file format specifications, including copyright issues.
Chapter 9, Data Compression, describes data compression, particularly as compression techniques apply to graphics data and the graphics files described in this book.
Chapter 10, Multimedia, surveys multimedia formats and issues.
Part Two, Graphics File Formats, describes the graphics file formats themselves. There is one article per format or format set, and articles are arranged alphabetically. Each article provides basic classification information, an overview, and details of the format. In many cases we've included short code examples. We've also indicated whether the specification itself (or an article that describes the details of the format) is included on the CD-ROM, as well as code examples and images encoded in that format. Also provided in the articles are references for further information.
Part Three, Appendices, contains the following material:
Appendix A, Graphics Files and Resources on the Internet, describes how to use a variety of information services on the Internet (email, USENET, FTP, Archie, and the World Wide Web) to obtain, post, and otherwise deal with graphics files. It includes a listing of recommended sources of information about computer graphics and graphics file formats.
Appendix B, Graphics Files and Resources on the Commercial Services, provides pointers to information about graphics files and resources on CompuServe, America Online, and a variety of bulletin board systems (BBSs).
Appendix C, Installation and Setup, describes how to get the online product up and running on your system.