Image::PNG::Portable - portable PNG output for Raku
use Image::PNG::Portable;
my $o = Image::PNG::Portable.new: :width(16), :height(16);
$o.set: 8,8, 255,255,255;
$o.set-text-meta('Author', 'Apogee');
$o.write: 'image.png';
my $o2 = Image::PNG::Portable.new;
$o2.read: 'image.png';
$o2.get: 0, 0; # Pixel color value at x,y of 0,0 => (0, 0, 0, 255)
$o2.get-text-meta('Author');This module is currently useful for reading & outputting 8-bit-per-channel truecolor images with tExt metadata. Writing precompression filters, palettes, grayscale, non-8-bit channels, and ancillary features like gamma correction, and color profiles are all NYI.
This is an almost-pure Raku PNG module.
The following types are used internally and in this documentation. They are here for brevity, not exported in the public API.
subset UInt8 of Int where 0 <= * <= 255; # unsigned 8-bit
subset PInt of Int where * > 0; # positiveCreates a new Image::PNG::Portable object, initialized to black. If the alpha channel is enabled, it is initialized to transparent.
Sets the color of a pixel in the image.
Sets the color of all pixels in the image.
Gets the color of a pixel in the image as an array of channel values.
Writes the contents of the image to the specified file.
Reads the PNG file to the Image object. If $metadata-only is set to True, will not read pixel data.
Get the color information at pixel $x, $y (zero-indexed).
Set tExt metadata for $key to $value.
Set tExt metadata from %pairs.
Get all tExt metadata keys.
Get tExt metadata for given key $key.
Clear tExt metadata.
Get the tExt metadata as a Hash.
-
raydiak
-
Matt Doughty
Copyright 2015 - 2021 raydiak
Copyright 2025 Raku Community
This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.