1

Perl の GD コンポーネント (バージョン 2.46、http://metacpan.org/pod/GD ) から PNG 出力を取得しようとしたときに、ImageMagick で開いたときに結果の画像がちらつきます。同じ種類の動作は、GIF でエクスポートしても得られますが、JPEG では得られません

私が使用したコード例は次のとおりです。

#!/usr/bin/perl                                                                                                 

use GD;
$width = 750;
$height = 600;
$im = new GD::Image($width,$height);

$white = $im->colorAllocate(255,255,255);
$black = $im->colorAllocate(0,0,0);
@colors = ();
open(RGB,"heatmap.lut") || die "Cannot open LUT file!";
@colorLines = <RGB>;
close RGB;
foreach my $color (@colorLines){
    $color =~ s/[\r\n]//g;
    push @colors, $im->colorAllocate(split(/\t/,$color));
}
$im->transparent($white);
$im->interlaced('false');
$counterY = 0;
for (my $y=0;$y<600;$y+=30){
    $counterX=0;
    for (my $x=0;$x<750;$x+=30){
        $randnum = int(rand(26));
        $im->filledRectangle($x+1,$y+1,$x+29,$y+29,$colors[$randnum]);
        $counterX++;
    }
    $counterY++;
}

open(TOPNG,">test.png") || die;
binmode TOPNG;
print TOPNG $im->png;
close TOPNG;

このちらつき動作を示すビデオは、次のリンクで見ることができます: http://youtu.be/EErvl8E7ijc . 動画でははっきり見えませんが、そのちらつきの間に、本来描きたかった絵が見えることがあります。

「 identify 」コマンドを使用してpngをさらに調査すると、通常のpngから取得した通常のDirectClass出力ではなく、PsuedoClassにあることがわかります。

なぜこれが起こっているのか、それを解決する方法はありますか?

どうもありがとう!

もう少し情報:

私が取り組んでいるリモート サーバー: Red Hat Enterprise Linux Server リリース 6.3 (Santiago)

接続に使用するホスト システム: Mac OSX Mountain Lion with XQuartz 2.7.2

libpng バージョン: 1.5.11

ImageMagick バージョン: 6.5.4-7 2012-04-10 Q16

編集: heatmap.lutファイルはここにあります: http://pastebin.com/vgw5MnTD

4

0 に答える 0