§ 35 - Layered File Format
Rules:
------
tags are each eight, 8-bit chars
tags are followed by a chunk size, a 64-bit integer (8 bytes, unsigned)
chunk of size follows, unless chunk size is zero
File content:
-------------
first, file ID group, in this specific order:
{
ELF16BIT (chunksize=0)
EVERSION (chunksize) integer, file format version
EKEYVALU (chunksize) integer, 0x1F4B8C3D
}
Next, after file ID group
{
First, master information group, in any order:
{
MST_NAME (chunksize) name of master
MST_ANNO (chunksize) annotation of master
MST_CPYR (chunksize) copyright of master
MST_AUTH (chunksize) author of image
MST_SOFT (chunksize) software involved with image
MST_CTIM (chunksize) image creation time: "YYYYMMDD:HHMMSS GMT"
MST_MTIM (chunksize) image modification time: "YYYYMMDD:HHMMSS GMT"
MST_LATI (chunksize) double as text, decimal latitude in degrees
MST_LONG (chunksize) double as text, decimal longitude in degrees
MST_ALTI (chunksize) double as text, decimal altitude in meters
MST_SHUT (chunksize) double as text, decimal shutter speed
MST_APER (chunksize) double as text, decimal aperture
MST_FOCA (chunksize) double as text, decimal focal length
MST_ISOS (chunksize) double as text, decimal ISO sensitivity
MASTERXD (chunksize) integer, width of master
MASTERYD (chunksize) integer, height of master
MST_XDPI (chunksize) integer, master X DPI
MST_YDPI (chunksize) integer, master Y DPI
}
Next, allocation signal:
{
MAST_KEY (chunksize=0) signal to allocate the master image memory
}
Next, note information, if any:
{
MST_INOT (chunksize) text of note
MST_INPU (chunksize) character, either 'T' or 'F' - note public flag
MST_INAM (chunksize) integer, area mode
MST_INTX (chunksize) integer, text X position
MST_INTY (chunksize) integer, text Y position
MST_INAX (chunksize) integer, anchor X position
MST_INAY (chunksize) integer, anchor Y position
MST_INEX (chunksize) integer, extent X position
MST_INEY (chunksize) integer, extent Y position
MST_INOP (chunksize) double as text, opacity 0-1
if there are freehand/polygon points:
{
MST_INPX (chunksize) integer, point X position
MST_INPY (chunksize) integer, point Y position
}
MST_INBU (0 chunksize) built note command
}
}
Next, layer information, FOR EACH LAYER, in highest-to-lowest layer order:
{
First, basic layer information group, tags in any order:
{
LAY_NAME (chunksize) Layer name
LAY_ANNO (chunksize) annotation of layer
LAY_CPYR (chunksize) copyright of layer
LAY_AUTH (chunksize) author of image
LAY_SOFT (chunksize) software involved with image
LAY_CTIM (chunksize) image creation time: "YYYYMMDD:HHMMSS GMT"
LAY_MTIM (chunksize) image modification time: "YYYYMMDD:HHMMSS GMT"
LAY_LATI (chunksize) double as text, decimal latitude in degrees
LAY_LONG (chunksize) double as text, decimal longitude in degrees
LAY_ALTI (chunksize) double as text, decimal altitude in meters
LAY_SHUT (chunksize) double as text, decimal shutter speed
LAY_APER (chunksize) double as text, decimal aperture
LAY_FOCA (chunksize) double as text, decimal focal length
LAY_ISOS (chunksize) double as text, decimal ISO sensitivity
LAY_XWID (chunksize) integer, of layer width
LAY_YWID (chunksize) integer, of layer height
LAY_XDPI (chunksize) integer, of layer X DPI
LAY_YDPI (chunksize) integer, of layer Y DPI
LAY_IMOD (chunksize) integer, of image mode (RGB=0, YRB=1)
LAY_XCEN (chunksize) integer, X center of layer (this is a user-assigned value)
LAY_YCEN (chunksize) integer, Y center of layer (this is a user-assigned value)
LAY_COMP (chunksize) character, either 'T' or 'F' - compression flag
}
Next, allocation signal:
{
LAYERKEY (chunksize=0) signal to allocate the layer memory
}
Next, note information, if any:
{
LAY_INOT (chunksize) text of note
LAY_INPU (chunksize) character, either 'T' or 'F' - note public flag
LAY_INAM (chunksize) integer, area mode
LAY_INTX (chunksize) integer, text X position
LAY_INTY (chunksize) integer, text Y position
LAY_INAX (chunksize) integer, anchor X position
LAY_INAY (chunksize) integer, anchor Y position
LAY_INEX (chunksize) integer, extent X position
LAY_INEY (chunksize) integer, extent Y position
LAY_INOP (chunksize) double as text, opacity 0-1
if there are freehand/polygon points:
{
LAY_INPX (chunksize) integer, point X position
LAY_INPY (chunksize) integer, point Y position
}
LAY_INBU (0 chunksize) built note command
}
Next, layer extended information group, tags in any order:
{
LAY_MODE (chunksize) integer, layer blend mode
LAY_XOFF (chunksize) integer, layer x displacement relative to master or other layer
LAY_YOFF (chunksize) integer, layer y displacement relative to master or other layer
LAY_OPAC (chunksize) double as text, layer opacity in range 0...1
LAY_ROTA (chunksize) double as text, layer rotation in degrees, 0...360
LAY_FRXX (chunksize) double as text, fractional pixel x offset, 0...1
LAY_FRYY (chunksize) double as text, fractional pixel y offset, 0...1
LAY_FACT (chunksize) double as text, factor for layer mode, 0...1
LAY_VISI (chunksize) character, either 'T' or 'F' - layer visible flag
LAY_LOCS (chunksize) character, either 'T' or 'F' - layer local stack flag
LAY_GLOM (chunksize) character, either 'T' or 'F' - layer global mask flag
LAY_LOKS (chunksize) character, either 'T' or 'F' - layer lockstep flag
LAY_RCHN (chunksize) compressed* block of 16-bit unsigned red data
LAY_GCHN (chunksize) compressed* block of 16-bit unsigned green data
LAY_BCHN (chunksize) compressed* block of 16-bit unsigned blue data
LAY_ACHN (chunksize) compressed* block of 16-bit unsigned alpha data
}
next:
{
LAYERBLD (chunksize=0) signal to build this just-specified layer
}
}
Developer explanation of warp layers:
For warp layers, the data in the RGBA channels is repurposed:
o Red data is a signed 16-bit X displacement.
o Green data is an unsigned 16-bit fractional X displacement.
o Blue data is a signed 16-bit Y displacement.
o Alpha data is a unsigned 16-bit fractional Y displacement.
The warp layer's job is to move pixel data underneath it XY
displacement relative to the pixel the layer is over. So as the
layer's X and Y master offsets are moved, the warp layer lies
over different pixels, and the displacement moves with it.
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