Ubuntuマシン(PHP 5.5.9)でGDを使用するPHPコードを書いて、Amazon Linux(PHP 5.5)を使用してamazon EC2に移動しました。 0.31)と私は(私だけimagecreatefromstring()
を使用している同じ入力データファイルからコードとは全く異なる結果を得ている。$data
は、JPEGファイルの内容が含まれています)いくつかのImage/GD問題:クロッピング、色と透明度の設定
- 私はそれが希望のマシンを変更する前に。白を透明に変更します。それはもはやその変更を行いません。
- これはグラフィックを完全に切り抜くために使用されました。今は左に少し白い部分を残し、右に少しだけ画像を切り取っています。
- 左側に細い黒い線があります。
imagecolorset()
で画像の色を変えているように見えません。私は$i
に以下のループから出力され、ファイルに変更を加えるためにimagecolorset()
を取得することができないの例としてif ($isFileString) { $src2 = imagecreatefromstring($data); } else { $src2 = imagecreatefromjpeg($data); } // This was an attempt to get it to recognize transparent. if (!unlink ("../drive/sigs/tmp.png")) die("Failed to delete tmp.png"); imagepng($src2, "../drive/sigs/tmp.png"); imagedestroy($src2); $src = imagecreatefrompng("../drive/sigs/tmp.png"); imagealphablending($src, false); imagesavealpha($src, true); for ($i=0; $i< 1024; $i++) { echo $i; echo print_r(imagecolorsforindex($src, $i)); imagecolorset($src, $i, 255, 255, 255,255); echo print_r(imagecolorsforindex($src, $i)); echo "<BR>"; } $src = imagecropauto($src, IMG_CROP_WHITE); $white = imagecolorallocate($src, 255, 255, 255); imagecolortransparent($src, $white); $src = imagerotate($src, -90, 0);
EDIT :ここ
はコードです:
1Array ([red] => 0 [green] => 0 [blue] => 1 [alpha] => 0) 1Array ([red] => 0 [green] => 0 [blue] => 1 [alpha] => 0) 1
2Array ([red] => 0 [green] => 0 [blue] => 2 [alpha] => 0) 1Array ([red] => 0 [green] => 0 [blue] => 2 [alpha] => 0) 1
3Array ([red] => 0 [green] => 0 [blue] => 3 [alpha] => 0) 1Array ([red] => 0 [green] => 0 [blue] => 3 [alpha] => 0) 1
EDIT2
さらに詳しい情報:gdのバージョン(php -i | grep -i gd
)を確認しました。私は、GDバージョン2.1.1-devのUbuntuボックスと、バンドルされた(2.1.0互換)EC2ボックスを見て驚いています。私はGDの新人だから、AmazonがGDの悪いバージョンを提供するのではなく、これが自分のせいだと思う方がもっと欲しい。
EDIT3
メモリの問題ではありません。
memory_get_peak_usage()
は約35MBを報告します。gd_info()
の唯一の違いはバージョン番号です。