78 lines
2.6 KiB
Ada
78 lines
2.6 KiB
Ada
private package GID.Decoding_PNG is
|
|
|
|
type PNG_Chunk_tag is (
|
|
--
|
|
-- Critical chunks
|
|
--
|
|
IHDR, -- must be the first chunk; it contains the header.
|
|
PLTE, -- contains the palette; list of colors.
|
|
IDAT, -- contains the image, which may be split among multiple IDAT chunks.
|
|
IEND, -- marks the image end.
|
|
--
|
|
-- Ancillary chunks
|
|
--
|
|
bKGD, -- gives the default background color.
|
|
cHRM, -- gives the chromaticity coordinates of the display primaries and white point.
|
|
gAMA, -- specifies gamma.
|
|
hIST, -- can store the histogram, or total amount of each color in the image.
|
|
iCCP, -- is an ICC color profile.
|
|
iTXt, -- contains UTF-8 text, compressed or not, with an optional language tag.
|
|
pHYs, -- holds the intended pixel size and/or aspect ratio of the image.
|
|
sBIT, -- (significant bits) indicates the color-accuracy of the source data.
|
|
sPLT, -- suggests a palette to use if the full range of colors is unavailable.
|
|
sRGB, -- indicates that the standard sRGB color space is used.
|
|
tEXt, -- can store text that can be represented in ISO/IEC 8859-1.
|
|
tIME, -- stores the time that the image was last changed.
|
|
tRNS, -- contains transparency information.
|
|
zTXt, -- contains compressed text with the same limits as tEXt.
|
|
--
|
|
-- Public extentions
|
|
-- PNG Extensions and Register of Public Chunks and Keywords
|
|
--
|
|
oFFs, -- image offset from frame or page origin
|
|
pCAL, -- physical calibration of pixel values
|
|
sCAL, -- physical scale of image subject
|
|
sTER, -- stereographic subimage layout
|
|
gIFg, -- GIF Graphic Control Extension
|
|
gIFx, -- GIF Application Extension
|
|
fRAc, -- fractal image parameters
|
|
--
|
|
-- Private chunks (not defined in the ISO standard)
|
|
--
|
|
vpAg, -- used in ImageMagick to store "virtual page" size
|
|
spAL,
|
|
prVW,
|
|
cmOD,
|
|
cmPP,
|
|
cpIp,
|
|
mkBF,
|
|
mkBS,
|
|
mkBT,
|
|
mkTS,
|
|
pcLb
|
|
);
|
|
|
|
type Chunk_head is record
|
|
length: U32;
|
|
kind : PNG_Chunk_tag;
|
|
end record;
|
|
|
|
procedure Read( image: in out image_descriptor; ch: out Chunk_head);
|
|
|
|
--------------------
|
|
-- Image decoding --
|
|
--------------------
|
|
|
|
generic
|
|
type Primary_color_range is mod <>;
|
|
with procedure Set_X_Y (x, y: Natural);
|
|
with procedure Put_Pixel (
|
|
red, green, blue : Primary_color_range;
|
|
alpha : Primary_color_range
|
|
);
|
|
with procedure Feedback (percents: Natural);
|
|
--
|
|
procedure Load (image: in out Image_descriptor);
|
|
|
|
end GID.Decoding_PNG;
|