Goddagens..
Har ett litet perl-script som "läser in" en PNG bild och konverterar varje pixel i denna bild till en etta resp. nolla. PNG bilden består bara av två färger, svart och grön. Grön blir en nolla och svart en etta.
#!/usr/bin/perl -w
use strict;
use GD;
my $png = 'bild.png';
open(PNG, $png) or die "Kan inte öppna $png: $!";
my $gd = GD::Image->newFromPng(\*PNG) | |
die "$png är nog ingen PNG fil..";
close PNG;
my ($width, $height) = $gd->getBounds();
my $bit_string = '';
for (my $x = 0; $x < $width; $x++)
{
for (my $y = 0; $y < $height; $y++)
{
my $index = $gd->getPixel($x, $y);
my ($r, $g, $b) = $gd->rgb($index);
if ($g > 2 )
{
$bit_string.= '0';
}
else
{
$bit_string.= '1';
}
}
}
print "$bit_string \n";
Problemet är att detta script läser PNG bilden kolumn för kolumn, börjar på pixeln högst upp till vänster och läser den kolumnen. Försätter sedan till nästa kolumn högst upp och läser den. Jag vill att det ska läsa varje rad, börja högst upp till vänster och läsa hela raden sedan hoppa ned till nästa rad och börja längst till vänster osv. Har provat allt (nästan) men det vill inte riktigt..
Några tips?
/jvg