假設我想拍攝一張圖片,請將其所有像素向右移一個像素,然後保存一個像素。我想這樣的代碼:使用Perl修改圖像中的像素
my $image_file = "a.jpg";
my $im = GD::Image->newFromJpeg($image_file);
my ($width, $height) = $im->getBounds();
my $outim = new GD::Image($width, $height);
foreach my $x (1..$width)
{
foreach my $y (1..$height)
{
my $index = $im->getPixel($x-1,$y-1);
my ($r,$g,$b) = $im->rgb($index);
my $color = $outim->colorAllocate($r,$g,$b);
$outim->setPixel($x,$y,$color);
}
}
%printing the picture...
這並不做的伎倆;它以一種顏色繪製除x = 0或y = 0之外的所有像素。我哪裏錯了?
感謝您的回答,很顯然,我沒有得到任何地方,其中x = 0或y = 0,但爲什麼其餘的是一種顏色,而第一張圖片是彩色的? – ronash 2012-03-08 19:29:43
您是否嘗試過「打印」原始圖像,以確保它被正確讀取? – 2012-03-08 19:36:47
是的,它確實打印完全相同的圖像。 – ronash 2012-03-08 19:38:27