Repository navigation
Releases
Releases · Open-Tech-Foundation/Pixels
otf-pixels@0.5.0
Added
- sharp's
metadata():Image::source_metadata()reads, from the headers
alone, the file's format and size, stored and oriented dimensions, pixel
format, channels, alpha, bits per sample, orientation, pages, animation,
density (JPEG JFIF or EXIF, PNGpHYs, TIFF tags), progressive or
interlaced, palette, chroma subsampling (JPEG, AVIF), background (PNG
bKGD, GIF), compression (TIFF, WebP, AVIF, JPEG XL), comments (PNG
tEXt/zTXt/iTXt, JPEGCOM, GIF), and the ICC, EXIF and XMP bytes.
Decoders report the format-specific part through the new
Decoder::source_infoandDecoder::xmp. - sharp's
stats():Image::stats()gives each channel's min, max (with
positions), sum, sum of squares, mean and standard deviation, and the
image's opacity, entropy, sharpness and dominant colour. - XMP: read from JPEG, PNG, WebP, TIFF, AVIF and JPEG XL, and written to
them withEncodeOptions::keep_xmp(sharp'skeepXmp) or
Image::with_xmp(withXmp);with_keep_metadatakeeps EXIF, XMP and
density together (keepMetadata).Encoder::set_xmpcarries it. - Density output, sharp's
withMetadata({ density }):
Image::with_densitywrites JPEG's JFIF density, PNG'spHYsand TIFF's
resolution tags (Encoder::set_density). - EXIF for TIFF and JPEG XL: a TIFF's descriptive tags and Exif and GPS
directories are read as an EXIF block and written back into an output
TIFF's directory; JPEG XL output carries EXIF and XMP in the container's
Exifandxmlboxes.otf_pixels_core::exifparses, re-orders and
lays out EXIF blocks for this. - Pillow-written fixtures (
scripts/regenerate-metadata-fixtures.py)
check XMP, EXIF, density and PNG text read from another implementation;
Pillow, libavif and libjxl read back what Pixels writes.
Fixed
- JPEG XL: a header claiming a vast image no longer panics (an overflow
counting its groups, found by thejxl_decodefuzz target). The decoder
checksLimitsbefore reading any frame header, group counts saturate,
and a table of contents longer than the bits left in the file is refused
before anything is sized by it.
otf-pixels-ops@0.5.0
Added
- sharp's
metadata():Image::source_metadata()reads, from the headers
alone, the file's format and size, stored and oriented dimensions, pixel
format, channels, alpha, bits per sample, orientation, pages, animation,
density (JPEG JFIF or EXIF, PNGpHYs, TIFF tags), progressive or
interlaced, palette, chroma subsampling (JPEG, AVIF), background (PNG
bKGD, GIF), compression (TIFF, WebP, AVIF, JPEG XL), comments (PNG
tEXt/zTXt/iTXt, JPEGCOM, GIF), and the ICC, EXIF and XMP bytes.
Decoders report the format-specific part through the new
Decoder::source_infoandDecoder::xmp. - sharp's
stats():Image::stats()gives each channel's min, max (with
positions), sum, sum of squares, mean and standard deviation, and the
image's opacity, entropy, sharpness and dominant colour. - XMP: read from JPEG, PNG, WebP, TIFF, AVIF and JPEG XL, and written to
them withEncodeOptions::keep_xmp(sharp'skeepXmp) or
Image::with_xmp(withXmp);with_keep_metadatakeeps EXIF, XMP and
density together (keepMetadata).Encoder::set_xmpcarries it. - Density output, sharp's
withMetadata({ density }):
Image::with_densitywrites JPEG's JFIF density, PNG'spHYsand TIFF's
resolution tags (Encoder::set_density). - EXIF for TIFF and JPEG XL: a TIFF's descriptive tags and Exif and GPS
directories are read as an EXIF block and written back into an output
TIFF's directory; JPEG XL output carries EXIF and XMP in the container's
Exifandxmlboxes.otf_pixels_core::exifparses, re-orders and
lays out EXIF blocks for this. - Pillow-written fixtures (
scripts/regenerate-metadata-fixtures.py)
check XMP, EXIF, density and PNG text read from another implementation;
Pillow, libavif and libjxl read back what Pixels writes.
Fixed
- JPEG XL: a header claiming a vast image no longer panics (an overflow
counting its groups, found by thejxl_decodefuzz target). The decoder
checksLimitsbefore reading any frame header, group counts saturate,
and a table of contents longer than the bits left in the file is refused
before anything is sized by it.
otf-pixels-core@0.5.0
Added
- sharp's
metadata():Image::source_metadata()reads, from the headers
alone, the file's format and size, stored and oriented dimensions, pixel
format, channels, alpha, bits per sample, orientation, pages, animation,
density (JPEG JFIF or EXIF, PNGpHYs, TIFF tags), progressive or
interlaced, palette, chroma subsampling (JPEG, AVIF), background (PNG
bKGD, GIF), compression (TIFF, WebP, AVIF, JPEG XL), comments (PNG
tEXt/zTXt/iTXt, JPEGCOM, GIF), and the ICC, EXIF and XMP bytes.
Decoders report the format-specific part through the new
Decoder::source_infoandDecoder::xmp. - sharp's
stats():Image::stats()gives each channel's min, max (with
positions), sum, sum of squares, mean and standard deviation, and the
image's opacity, entropy, sharpness and dominant colour. - XMP: read from JPEG, PNG, WebP, TIFF, AVIF and JPEG XL, and written to
them withEncodeOptions::keep_xmp(sharp'skeepXmp) or
Image::with_xmp(withXmp);with_keep_metadatakeeps EXIF, XMP and
density together (keepMetadata).Encoder::set_xmpcarries it. - Density output, sharp's
withMetadata({ density }):
Image::with_densitywrites JPEG's JFIF density, PNG'spHYsand TIFF's
resolution tags (Encoder::set_density). - EXIF for TIFF and JPEG XL: a TIFF's descriptive tags and Exif and GPS
directories are read as an EXIF block and written back into an output
TIFF's directory; JPEG XL output carries EXIF and XMP in the container's
Exifandxmlboxes.otf_pixels_core::exifparses, re-orders and
lays out EXIF blocks for this. - Pillow-written fixtures (
scripts/regenerate-metadata-fixtures.py)
check XMP, EXIF, density and PNG text read from another implementation;
Pillow, libavif and libjxl read back what Pixels writes.
Fixed
- JPEG XL: a header claiming a vast image no longer panics (an overflow
counting its groups, found by thejxl_decodefuzz target). The decoder
checksLimitsbefore reading any frame header, group counts saturate,
and a table of contents longer than the bits left in the file is refused
before anything is sized by it.
otf-pixels-compress@0.5.0
Added
- sharp's
metadata():Image::source_metadata()reads, from the headers
alone, the file's format and size, stored and oriented dimensions, pixel
format, channels, alpha, bits per sample, orientation, pages, animation,
density (JPEG JFIF or EXIF, PNGpHYs, TIFF tags), progressive or
interlaced, palette, chroma subsampling (JPEG, AVIF), background (PNG
bKGD, GIF), compression (TIFF, WebP, AVIF, JPEG XL), comments (PNG
tEXt/zTXt/iTXt, JPEGCOM, GIF), and the ICC, EXIF and XMP bytes.
Decoders report the format-specific part through the new
Decoder::source_infoandDecoder::xmp. - sharp's
stats():Image::stats()gives each channel's min, max (with
positions), sum, sum of squares, mean and standard deviation, and the
image's opacity, entropy, sharpness and dominant colour. - XMP: read from JPEG, PNG, WebP, TIFF, AVIF and JPEG XL, and written to
them withEncodeOptions::keep_xmp(sharp'skeepXmp) or
Image::with_xmp(withXmp);with_keep_metadatakeeps EXIF, XMP and
density together (keepMetadata).Encoder::set_xmpcarries it. - Density output, sharp's
withMetadata({ density }):
Image::with_densitywrites JPEG's JFIF density, PNG'spHYsand TIFF's
resolution tags (Encoder::set_density). - EXIF for TIFF and JPEG XL: a TIFF's descriptive tags and Exif and GPS
directories are read as an EXIF block and written back into an output
TIFF's directory; JPEG XL output carries EXIF and XMP in the container's
Exifandxmlboxes.otf_pixels_core::exifparses, re-orders and
lays out EXIF blocks for this. - Pillow-written fixtures (
scripts/regenerate-metadata-fixtures.py)
check XMP, EXIF, density and PNG text read from another implementation;
Pillow, libavif and libjxl read back what Pixels writes.
Fixed
- JPEG XL: a header claiming a vast image no longer panics (an overflow
counting its groups, found by thejxl_decodefuzz target). The decoder
checksLimitsbefore reading any frame header, group counts saturate,
and a table of contents longer than the bits left in the file is refused
before anything is sized by it.
otf-pixels-codec-webp@0.5.0
Added
- sharp's
metadata():Image::source_metadata()reads, from the headers
alone, the file's format and size, stored and oriented dimensions, pixel
format, channels, alpha, bits per sample, orientation, pages, animation,
density (JPEG JFIF or EXIF, PNGpHYs, TIFF tags), progressive or
interlaced, palette, chroma subsampling (JPEG, AVIF), background (PNG
bKGD, GIF), compression (TIFF, WebP, AVIF, JPEG XL), comments (PNG
tEXt/zTXt/iTXt, JPEGCOM, GIF), and the ICC, EXIF and XMP bytes.
Decoders report the format-specific part through the new
Decoder::source_infoandDecoder::xmp. - sharp's
stats():Image::stats()gives each channel's min, max (with
positions), sum, sum of squares, mean and standard deviation, and the
image's opacity, entropy, sharpness and dominant colour. - XMP: read from JPEG, PNG, WebP, TIFF, AVIF and JPEG XL, and written to
them withEncodeOptions::keep_xmp(sharp'skeepXmp) or
Image::with_xmp(withXmp);with_keep_metadatakeeps EXIF, XMP and
density together (keepMetadata).Encoder::set_xmpcarries it. - Density output, sharp's
withMetadata({ density }):
Image::with_densitywrites JPEG's JFIF density, PNG'spHYsand TIFF's
resolution tags (Encoder::set_density). - EXIF for TIFF and JPEG XL: a TIFF's descriptive tags and Exif and GPS
directories are read as an EXIF block and written back into an output
TIFF's directory; JPEG XL output carries EXIF and XMP in the container's
Exifandxmlboxes.otf_pixels_core::exifparses, re-orders and
lays out EXIF blocks for this. - Pillow-written fixtures (
scripts/regenerate-metadata-fixtures.py)
check XMP, EXIF, density and PNG text read from another implementation;
Pillow, libavif and libjxl read back what Pixels writes.
Fixed
- JPEG XL: a header claiming a vast image no longer panics (an overflow
counting its groups, found by thejxl_decodefuzz target). The decoder
checksLimitsbefore reading any frame header, group counts saturate,
and a table of contents longer than the bits left in the file is refused
before anything is sized by it.
otf-pixels-codec-tiff@0.5.0
Added
- sharp's
metadata():Image::source_metadata()reads, from the headers
alone, the file's format and size, stored and oriented dimensions, pixel
format, channels, alpha, bits per sample, orientation, pages, animation,
density (JPEG JFIF or EXIF, PNGpHYs, TIFF tags), progressive or
interlaced, palette, chroma subsampling (JPEG, AVIF), background (PNG
bKGD, GIF), compression (TIFF, WebP, AVIF, JPEG XL), comments (PNG
tEXt/zTXt/iTXt, JPEGCOM, GIF), and the ICC, EXIF and XMP bytes.
Decoders report the format-specific part through the new
Decoder::source_infoandDecoder::xmp. - sharp's
stats():Image::stats()gives each channel's min, max (with
positions), sum, sum of squares, mean and standard deviation, and the
image's opacity, entropy, sharpness and dominant colour. - XMP: read from JPEG, PNG, WebP, TIFF, AVIF and JPEG XL, and written to
them withEncodeOptions::keep_xmp(sharp'skeepXmp) or
Image::with_xmp(withXmp);with_keep_metadatakeeps EXIF, XMP and
density together (keepMetadata).Encoder::set_xmpcarries it. - Density output, sharp's
withMetadata({ density }):
Image::with_densitywrites JPEG's JFIF density, PNG'spHYsand TIFF's
resolution tags (Encoder::set_density). - EXIF for TIFF and JPEG XL: a TIFF's descriptive tags and Exif and GPS
directories are read as an EXIF block and written back into an output
TIFF's directory; JPEG XL output carries EXIF and XMP in the container's
Exifandxmlboxes.otf_pixels_core::exifparses, re-orders and
lays out EXIF blocks for this. - Pillow-written fixtures (
scripts/regenerate-metadata-fixtures.py)
check XMP, EXIF, density and PNG text read from another implementation;
Pillow, libavif and libjxl read back what Pixels writes.
Fixed
- JPEG XL: a header claiming a vast image no longer panics (an overflow
counting its groups, found by thejxl_decodefuzz target). The decoder
checksLimitsbefore reading any frame header, group counts saturate,
and a table of contents longer than the bits left in the file is refused
before anything is sized by it.
otf-pixels-codec-raw@0.5.0
Added
- sharp's
metadata():Image::source_metadata()reads, from the headers
alone, the file's format and size, stored and oriented dimensions, pixel
format, channels, alpha, bits per sample, orientation, pages, animation,
density (JPEG JFIF or EXIF, PNGpHYs, TIFF tags), progressive or
interlaced, palette, chroma subsampling (JPEG, AVIF), background (PNG
bKGD, GIF), compression (TIFF, WebP, AVIF, JPEG XL), comments (PNG
tEXt/zTXt/iTXt, JPEGCOM, GIF), and the ICC, EXIF and XMP bytes.
Decoders report the format-specific part through the new
Decoder::source_infoandDecoder::xmp. - sharp's
stats():Image::stats()gives each channel's min, max (with
positions), sum, sum of squares, mean and standard deviation, and the
image's opacity, entropy, sharpness and dominant colour. - XMP: read from JPEG, PNG, WebP, TIFF, AVIF and JPEG XL, and written to
them withEncodeOptions::keep_xmp(sharp'skeepXmp) or
Image::with_xmp(withXmp);with_keep_metadatakeeps EXIF, XMP and
density together (keepMetadata).Encoder::set_xmpcarries it. - Density output, sharp's
withMetadata({ density }):
Image::with_densitywrites JPEG's JFIF density, PNG'spHYsand TIFF's
resolution tags (Encoder::set_density). - EXIF for TIFF and JPEG XL: a TIFF's descriptive tags and Exif and GPS
directories are read as an EXIF block and written back into an output
TIFF's directory; JPEG XL output carries EXIF and XMP in the container's
Exifandxmlboxes.otf_pixels_core::exifparses, re-orders and
lays out EXIF blocks for this. - Pillow-written fixtures (
scripts/regenerate-metadata-fixtures.py)
check XMP, EXIF, density and PNG text read from another implementation;
Pillow, libavif and libjxl read back what Pixels writes.
Fixed
- JPEG XL: a header claiming a vast image no longer panics (an overflow
counting its groups, found by thejxl_decodefuzz target). The decoder
checksLimitsbefore reading any frame header, group counts saturate,
and a table of contents longer than the bits left in the file is refused
before anything is sized by it.
otf-pixels-codec-png@0.5.0
Added
- sharp's
metadata():Image::source_metadata()reads, from the headers
alone, the file's format and size, stored and oriented dimensions, pixel
format, channels, alpha, bits per sample, orientation, pages, animation,
density (JPEG JFIF or EXIF, PNGpHYs, TIFF tags), progressive or
interlaced, palette, chroma subsampling (JPEG, AVIF), background (PNG
bKGD, GIF), compression (TIFF, WebP, AVIF, JPEG XL), comments (PNG
tEXt/zTXt/iTXt, JPEGCOM, GIF), and the ICC, EXIF and XMP bytes.
Decoders report the format-specific part through the new
Decoder::source_infoandDecoder::xmp. - sharp's
stats():Image::stats()gives each channel's min, max (with
positions), sum, sum of squares, mean and standard deviation, and the
image's opacity, entropy, sharpness and dominant colour. - XMP: read from JPEG, PNG, WebP, TIFF, AVIF and JPEG XL, and written to
them withEncodeOptions::keep_xmp(sharp'skeepXmp) or
Image::with_xmp(withXmp);with_keep_metadatakeeps EXIF, XMP and
density together (keepMetadata).Encoder::set_xmpcarries it. - Density output, sharp's
withMetadata({ density }):
Image::with_densitywrites JPEG's JFIF density, PNG'spHYsand TIFF's
resolution tags (Encoder::set_density). - EXIF for TIFF and JPEG XL: a TIFF's descriptive tags and Exif and GPS
directories are read as an EXIF block and written back into an output
TIFF's directory; JPEG XL output carries EXIF and XMP in the container's
Exifandxmlboxes.otf_pixels_core::exifparses, re-orders and
lays out EXIF blocks for this. - Pillow-written fixtures (
scripts/regenerate-metadata-fixtures.py)
check XMP, EXIF, density and PNG text read from another implementation;
Pillow, libavif and libjxl read back what Pixels writes.
Fixed
- JPEG XL: a header claiming a vast image no longer panics (an overflow
counting its groups, found by thejxl_decodefuzz target). The decoder
checksLimitsbefore reading any frame header, group counts saturate,
and a table of contents longer than the bits left in the file is refused
before anything is sized by it.
otf-pixels-codec-jxl@0.5.0
Added
- sharp's
metadata():Image::source_metadata()reads, from the headers
alone, the file's format and size, stored and oriented dimensions, pixel
format, channels, alpha, bits per sample, orientation, pages, animation,
density (JPEG JFIF or EXIF, PNGpHYs, TIFF tags), progressive or
interlaced, palette, chroma subsampling (JPEG, AVIF), background (PNG
bKGD, GIF), compression (TIFF, WebP, AVIF, JPEG XL), comments (PNG
tEXt/zTXt/iTXt, JPEGCOM, GIF), and the ICC, EXIF and XMP bytes.
Decoders report the format-specific part through the new
Decoder::source_infoandDecoder::xmp. - sharp's
stats():Image::stats()gives each channel's min, max (with
positions), sum, sum of squares, mean and standard deviation, and the
image's opacity, entropy, sharpness and dominant colour. - XMP: read from JPEG, PNG, WebP, TIFF, AVIF and JPEG XL, and written to
them withEncodeOptions::keep_xmp(sharp'skeepXmp) or
Image::with_xmp(withXmp);with_keep_metadatakeeps EXIF, XMP and
density together (keepMetadata).Encoder::set_xmpcarries it. - Density output, sharp's
withMetadata({ density }):
Image::with_densitywrites JPEG's JFIF density, PNG'spHYsand TIFF's
resolution tags (Encoder::set_density). - EXIF for TIFF and JPEG XL: a TIFF's descriptive tags and Exif and GPS
directories are read as an EXIF block and written back into an output
TIFF's directory; JPEG XL output carries EXIF and XMP in the container's
Exifandxmlboxes.otf_pixels_core::exifparses, re-orders and
lays out EXIF blocks for this. - Pillow-written fixtures (
scripts/regenerate-metadata-fixtures.py)
check XMP, EXIF, density and PNG text read from another implementation;
Pillow, libavif and libjxl read back what Pixels writes.
Fixed
- JPEG XL: a header claiming a vast image no longer panics (an overflow
counting its groups, found by thejxl_decodefuzz target). The decoder
checksLimitsbefore reading any frame header, group counts saturate,
and a table of contents longer than the bits left in the file is refused
before anything is sized by it.
otf-pixels-codec-jpeg@0.5.0
Added
- sharp's
metadata():Image::source_metadata()reads, from the headers
alone, the file's format and size, stored and oriented dimensions, pixel
format, channels, alpha, bits per sample, orientation, pages, animation,
density (JPEG JFIF or EXIF, PNGpHYs, TIFF tags), progressive or
interlaced, palette, chroma subsampling (JPEG, AVIF), background (PNG
bKGD, GIF), compression (TIFF, WebP, AVIF, JPEG XL), comments (PNG
tEXt/zTXt/iTXt, JPEGCOM, GIF), and the ICC, EXIF and XMP bytes.
Decoders report the format-specific part through the new
Decoder::source_infoandDecoder::xmp. - sharp's
stats():Image::stats()gives each channel's min, max (with
positions), sum, sum of squares, mean and standard deviation, and the
image's opacity, entropy, sharpness and dominant colour. - XMP: read from JPEG, PNG, WebP, TIFF, AVIF and JPEG XL, and written to
them withEncodeOptions::keep_xmp(sharp'skeepXmp) or
Image::with_xmp(withXmp);with_keep_metadatakeeps EXIF, XMP and
density together (keepMetadata).Encoder::set_xmpcarries it. - Density output, sharp's
withMetadata({ density }):
Image::with_densitywrites JPEG's JFIF density, PNG'spHYsand TIFF's
resolution tags (Encoder::set_density). - EXIF for TIFF and JPEG XL: a TIFF's descriptive tags and Exif and GPS
directories are read as an EXIF block and written back into an output
TIFF's directory; JPEG XL output carries EXIF and XMP in the container's
Exifandxmlboxes.otf_pixels_core::exifparses, re-orders and
lays out EXIF blocks for this. - Pillow-written fixtures (
scripts/regenerate-metadata-fixtures.py)
check XMP, EXIF, density and PNG text read from another implementation;
Pillow, libavif and libjxl read back what Pixels writes.
Fixed
- JPEG XL: a header claiming a vast image no longer panics (an overflow
counting its groups, found by thejxl_decodefuzz target). The decoder
checksLimitsbefore reading any frame header, group counts saturate,
and a table of contents longer than the bits left in the file is refused
before anything is sized by it.