1 つの jpg からピクセルを設定します。別の jpg ファイルに保存します。新しいファイルを再度読み取ります。ピクセルを取得します。しかし、それは私に間違った結果をもたらします。それが私のコードです:
use Image::Magick;
use Data::Dumper;
my $im = new Image::Magick;
$im->Read('file1.jpg');
my @pixel = $im->GetPixel(x=>0,y=>0,channel=>'RGB', normalize=>'True');
print Dumper(@pixel);
my @color = ('1.0', '0.0', '0.0');
$im->SetPixel(x=>0, y=>0, channel=>'RGB', normalize=>'True', color => \@color);
$im->Write('file30.jpg');
@pixel = $im->GetPixel(x=>0,y=>0,channel=>'RGB', normalize=>'True');
print Dumper(@pixel);
print "-" x 30, "\n";
my $nim = new Image::Magick;
$nim->Read('file30.jpg');
my @npixel = $nim->GetPixel(x=>0,y=>0,channel=>'RGB', normalize=>'True');
print Dumper(@npixel);
私がそれを実行すると:
$VAR1 = '0.133333333333333';
$VAR2 = '0.141176470588235';
$VAR3 = '0.0588235294117647';
$VAR1 = '1';
$VAR2 = '0';
$VAR3 = '0';
------------------------------
$VAR1 = '0.32156862745098';
$VAR2 = '0.247058823529412';
$VAR3 = '0.188235294117647';
@npixel が間違った結果を返すのはなぜですか? どうすれば修正できますか?
UPD
.BMP ファイルで問題なく動作します。