Jonathan Osuch wrote:
Charles,
Where in a Fract???.gif file does the Fractint data appear? I have a question and want to be on sound ground before I raise it. All I can identify is that the file starts with GIF98a and near the end there is a little plain text that is "fractint001 Fractal" with the space actually being y with an umlaut over it. Nothing else identifiable as plain text. The point I particularly want to know about is how the V screen parameters are included.
It should be shortly after the GIF89a, as part of the standard GIF file format.
Actually, I believe it is at the end of the graphic file format, when FractInt saves the image file. A GIF file is different from most other common bitmap format in the sense that it is stream-based. It consists of a series of data packets, called _blocks_, along with additional protocol information. The GIF89a format begins off with a Header (only six bytes in size, and is used only to identify the file type), a Logical Screen Description (seven bytes long), and an optional Global Color Table. Each image also contains a Logical Image Descriptor, an optional Local Color Table, and a block of image data. The Trailer in every GIF89a file contains the same value found in the 87a files, which is a single byte of data as the last character (a hex 3B). With the 89a version, four new "block" features were added to the GIF format called Control Extensions. All of these Control Extension blocks begin with a hex 21, followed by another Label byte: Graphics Control Extension (hex F9) Plain Text Extension (hex 01) Comment Extension (hex FE) Application Extension (hex FF) The latter one is what is being used by FractInt for storing the data to recreate an image. Take for example Jim Muth's image for today. The one that I generated for the hosted 640x480 pixel image was 344,911 bytes in size. At the hex location of 540F3 (byte 344,308) is the beginning of the Application Extension block that contains the FractInt data, and looks something like this: hex - 21FF0B6672616374696E74303033425D616E64656C62726F746D697834 char - ! ÿ ¤ f r a c t i n t 0 0 3 B m a n d e l b r o t m i x 4 There are more bytes within this first Application Extension block, and then there is another Application Extension block which is also written by FractInt. Notice the third byte of this block has a hex value of 0B, which is the Blocksize field (the number of bytes in the Identifier and AuthentCode fields). The reason that you do not see displayable text type data is because a lot of these values that are stored by FractInt are not in a character format, but are Hexadecimal values. Which means if you see a couple of "words" that had x"8002" and x"E001", that would actually be the decimal numeric values of 640 and 480 respectively. Sincerely, P.N.L. ------------------------------------------------- http://home.att.net/~Paul.N.Lee/PNL_Fractals.html http://www.Nahee.com/Fractals/