§ 34 - Atomic File Format
Rules:
------
tags are 8, 8-bit chars
tags are ALWAYS followed by a chunk size, a 64-bit integer (8 bytes, unsigned)
chunk of size follows, unless chunk size is zero
there are some ordering rules; obey the sequence described as follows:
File content:
-------------
first, file ID group, in this specific order:
{
ATO16BIT (chunksize=0)
AVERSION (chunksize) integer, file format version
AKEYVALU (chunksize) integer, 0x2E5A9B3E
}
Next, image information:
{
Basic image information group, tags in any order:
{
ATO_NAME (chunksize) Image name
ATO_ANNO (chunksize) annotation of image
ATO_CPYR (chunksize) copyright of image
ATO_AUTH (chunksize) author of image
ATO_SOFT (chunksize) software involved with image
ATO_CTIM (chunksize) image creation time: "YYYYMMDD:HHMMSS GMT"
ATO_MTIM (chunksize) image modification time: "YYYYMMDD:HHMMSS GMT"
ATO_LATI (chunksize) double as text, decimal latitude in degrees
ATO_LONG (chunksize) double as text, decimal longitude in degrees
ATO_ALTI (chunksize) double as text, decimal altitude in meters
ATO_SHUT (chunksize) double as text, decimal shutter speed
ATO_APER (chunksize) double as text, decimal aperture
ATO_FOCA (chunksize) double as text, decimal focal length
ATO_ISOS (chunksize) double as text, decimal ISO sensitivity
ATO_XWID (chunksize) integer, of image width
ATO_YWID (chunksize) integer, of image height
ATO_XDPI (chunksize) integer, of image X DPI
ATO_YDPI (chunksize) integer, of image Y DPI
ATO_IMOD (chunksize) integer, of image mode (RGB=0, YRB=1)
ATO_XCEN (chunksize) integer, X center of image (this is a user-assigned value)
ATO_YCEN (chunksize) integer, Y center of image (this is a user-assigned value)
ATO_COMP (chunksize) character, either 'T' or 'F' - compression flag
}
Next, allocation signal:
{
IMAGEKEY (chunksize=0) signal to allocate the image memory
}
Next, image extended information group, tags in any order:
{
ATO_MODE (chunksize) integer, layer blend mode
ATO_XOFF (chunksize) integer, layer x displacement relative to master or other layer
ATO_YOFF (chunksize) integer, layer y displacement relative to master or other layer
ATO_OPAC (chunksize) double as text, layer opacity in range 0...1
ATO_ROTA (chunksize) double as text, layer rotation in degrees, 0...360
ATO_FRXX (chunksize) double as text, fractional pixel x offset, 0...1
ATO_FRYY (chunksize) double as text, fractional pixel y offset, 0...1
ATO_FACT (chunksize) double as text, factor for layer mode, 0...1
ATO_VISI (chunksize) character, either 'T' or 'F' - layer visible flag
ATO_LOCS (chunksize) character, either 'T' or 'F' - layer local stack flag
ATO_GLOM (chunksize) character, either 'T' or 'F' - layer global mask flag
ATO_LOKS (chunksize) character, either 'T' or 'F' - layer lockstep flag
ATO_RCHN (chunksize) compressed* block of 16-bit unsigned red data
ATO_GCHN (chunksize) compressed* block of 16-bit unsigned green data
ATO_BCHN (chunksize) compressed* block of 16-bit unsigned blue data
ATO_ACHN (chunksize) compressed* block of 16-bit unsigned alpha data
}
Next, after each image information group:
{
IMAGEBLD (chunksize=0) signal to build the image
}
Next, note information, if any:
{
ATO_INOT (chunksize) text of note
ATO_INPU (chunksize) character, either 'T' or 'F' - note public flag
ATO_INAM (chunksize) integer, area mode
ATO_INTX (chunksize) integer, text X position
ATO_INTY (chunksize) integer, text Y position
ATO_INAX (chunksize) integer, anchor X position
ATO_INAY (chunksize) integer, anchor Y position
ATO_INEX (chunksize) integer, extent X position
ATO_INEY (chunksize) integer, extent Y position
ATO_INOP (chunksize) double as text, opacity 0-1
For any freehand/polygon points, for each point:
{
ATO_INPX (chunksize) integer, point X position
ATO_INPY (chunksize) integer, point Y position
}
ATO_INBU (0 chunksize) built note command
}
}
* compression is per Qt's QtCompress() function, which uses zlib
Document Keyboard Navigation
, Previous Page
. Next Page
t TOC
i Index
k Keyboard
o Operators
g Glossary
c Changes
This manual was generated with wtfm
wtfm uses aa_macro and SqLite
wtfm and aa_macro are coded in python 2.7
iToolBox 3.12
This Documentation and Associated Application Executables are Public Domain