Pixlr document

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Format Specification)
(Format Specification)
Line 40: Line 40:
 
   1 byte - opacity (0..100)
 
   1 byte - opacity (0..100)
 
   1 byte - visible  (TODO: flags ?)
 
   1 byte - visible  (TODO: flags ?)
   2 bytes - blendmode ?
+
   2 bytes - blendmode
  (TODO: layer protected flag?)
+
  
 
   4 bytes - size in bytes of layer bitmap data
 
   4 bytes - size in bytes of layer bitmap data
 
   n bytes - layer bitmap data in ARGB format (not premultiplied)
 
   n bytes - layer bitmap data in ARGB format (not premultiplied)
  
   (TODO: Layer masks and Layer styles)
+
   4 bytes - size in bytes of layer mask data (0 if no mask)
 +
  1 byte - number of layer style effects
 +
  for every effect
 +
    4 bytes - size in bytes of effect data
 +
    1 byte - type of effect
 +
    n bytes - effect data (TODO)
 +
  end every effect
 +
 
 +
  2 bytes - unknown
 +
  if text layer
 +
    text + font data here (TODO)
 +
  end if
  
 
end every layer
 
end every layer

Revision as of 20:28, 23 June 2017

File Format
Name Pixlr document
Ontology
Extension(s) .pxd

Pixlr is a layered raster graphics format associated with Web based Pixlr application.

Format Specification

[pixlr.com limited documentation]
Pixlr document format
The pixlr format is a compressed binary format, why we choose this and not a xml/jpg ish format is due to many reasons.
It all comes down to quality, speed and file size.
The pxd file is compressed with zlib to reduce the file size.
The uncompressed data are then ordered into two main sections. The Header and the Layer section.
The header includes, pxd version, color-mode, width, height and number of layers.

Reverse engineered information (after inflating the file):

2 bytes - version = 3
2 bytes - colorMode = 0
4 bytes - width
4 bytes - height
2 bytes - numLayers
4 bytes - The total size of the layers in bytes

for every layer
  4 bytes - layer size in bytes (including layer bitmap data)
  2 bytes - namelen
  n bytes - name
  1 byte - layer type: 0=bitmap, 1=text (text layer also contains bitmap)

  4 bytes - layer x-pos
  4 bytes - layer y-pos
  4 bytes - layer width
  4 bytes - layer height
  1 byte - opacity (0..100)
  1 byte - visible  (TODO: flags ?)
  2 bytes - blendmode

  4 bytes - size in bytes of layer bitmap data
  n bytes - layer bitmap data in ARGB format (not premultiplied)

  4 bytes - size in bytes of layer mask data (0 if no mask)
  1 byte - number of layer style effects
  for every effect
     4 bytes - size in bytes of effect data
     1 byte - type of effect
     n bytes - effect data (TODO)
  end every effect

  2 bytes - unknown
  if text layer
    text + font data here (TODO)
  end if

end every layer

(TODO: Merged image data may be at the end ?)

Software

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox