2

PHP の imagecolorallocatealpha に問題があります。不透明度を 127 に設定すると、透明ではなく白い画像が表示されます。

これが私のコードです

$image = imagecreatetruecolor($width, $height);
imagesavealpha($image, true);
$color = imagecolorallocatealpha($image, 255, 255, 255, 127);
imagefill($image, 0, 0, $color);
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
exit;

私もこれを試しましたが、同じ結果が得られます

$image = imagecreatetruecolor($width, $height);
$x = imagecolorat($image, 0,0);
imagecolortransparent($image, $x);
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
exit;

何か案が ?サーバー構成に関連できますか?

4

2 に答える 2

1

最初の行を置き換えます

$image = imagecreatetruecolor($width, $height);

$image = imagecreate($width, $height);

透明度が機能するようになりましたが、カラー パレットに実際の色が正確に表示されません。

白いピクセルはすべて透明になります。

透明度の色を白から変更するには、次を使用します。

$r = *red colour value (0 to 255)*;
$g = *green colour value (0 to 255)*;
$b = *blue colour value (0 to 255)*;
$color = imagecolorallocatealpha($image, $r, $g, $b, 127);
于 2014-08-11T09:40:26.667 に答える
-1

画像ファイルに使用しているコードがこれだけの場合は、$widthおよび変数の値が定義されていないため$height、スクリプトはエラーをスローします。

原則として、イメージをデバッグする場合は、Content-Type ヘッダーを削除します。これにより、ブラウザでスクリプトにアクセスして、潜在的なエラーを表示できます。

于 2012-10-18T10:33:37.433 に答える