Image-Pngslimmer
view release on metacpan or search on metacpan
t/07-mediancut.t view on Meta::CPAN
use strict;
use Image::Pngslimmer();
use Test::More tests =>1;
my ($pngfile, $blob1, $blob2, $read, $lengthfat, $lengthslim, $weightloss, $x);
print "****QUANTIZING IMAGE USING MEDIAN CUT****\n";
sysopen($pngfile, "./t/test2.png", 0x0);
$read = (stat ($pngfile))[7];
(sysread($pngfile, $blob1, $read) == $read) or die "Could not open PNG\n";
print "Input file looks like this:\n";
print Image::Pngslimmer::analyze($blob1);
$lengthfat = length($blob1);
print "Input file is $lengthfat bytes long\n";
print "Colour information is: ";
my $colourinfo = Image::Pngslimmer::reportcolours($blob1);
my %colourinfo = %$colourinfo;
foreach $x (keys %colourinfo)
{
my $y = sprintf("%06x", $x);
print "Colour 0x$y appears $colourinfo{$x} times\n";
}
$blob2 = Image::Pngslimmer::palettize($blob1);
$lengthslim = length($blob2);
print "After colour indexation the file is $lengthslim bytes long.\n";
open (PNGTEST, ">./t/testpal.png");
print PNGTEST $blob2;
close (PNGTEST);
print "Output file looks like this:\n";
print Image::Pngslimmer::analyze($blob2);
ok($lengthfat > $lengthslim);
close($pngfile);
( run in 3.921 seconds using v1.01-cache-2.11-cpan-364913b4093 )