2

最近、Perl モジュール GD を発見したので、少し試してみたいと思いました。これまでのところ、新しいオブジェクトの作成、色の割り当て、大量のデータのファイルへのリダイレクトに問題はありません。画像ファイルをビューアで開いたときに問題が発生しました。何を変更しても、四角形が表示されました。そして、私をからかうために、それは正しい色(青)しか得られませんでした.

なにが問題ですか?円の作成が正しくありませんか?

私は努力を続けますが、どんな助けも大歓迎です。よろしくお願いします。

これまでの私のコードは次のとおりです。

my $image1 = new GD::Image(100,100);
my $blue = $image1->colorAllocate(0,0,255);
$image1->arc(100,100,50,50,0,360,$blue);
my $print = $image1->png;

open(IMG,">","/home/bernd/perl/pie.png");
binmode IMG;
print IMG $print;
close(IMG);
4

2 に答える 2

2

問題は、背景と前景が同じ色だったことだと思います。

透明な背景に青い円を描く実際の例を次に示します。

use GD::Image;
use File::Slurp;

my $image1 = GD::Image->new(100,100);
my $white = $image1->colorAllocate(255,255,255);
my $blue = $image1->colorAllocate(0,0,255);
$image1->transparent($white);
$image1->interlaced('true');

$image1->arc(50,50,100,100,0,360,$blue);

write_file("/home/bernd/perl/pie.png", $image1->png);

new GD::Image()また、推奨されない間接オブジェクト記法スタイルの使用を避けるために、オブジェクト作成を更新しました。File::Slurpファイルの書き出しをクリーンアップするために使用されました。

Perl を使った画像操作に慣れていない場合は、よりモダンなデザインの Imager.pm もチェックすることをお勧めします。

于 2013-07-30T13:32:38.020 に答える
0

追加してみてください:

my $image1 = new GD::Image(100,100);
my $white = $image1->colorAllocate(255,255,255);
my $blue = $image1->colorAllocate(0,0,255);

背景と同じ色で弧を描いています

于 2013-07-30T13:36:12.527 に答える