1

PHP gdlib を使用して、既存の画像で灰色 (rgb: 235,235,240) を透明にしようとしています。

これは私が使用するコードです:

<?php
header("Content-type:image/png");
$picture = imagecreatefrompng("test.png");
$grey = imagecolorallocate($picture, 235, 235, 240);
imagecolortransparent($picture, $grey);
imagepng($picture);
imagedestroy($picture, "newpicture.png");
?>

test.png に多くの異なる色が含まれている場合、このコードは機能しません。それ以外の場合、test.png に少量の色しかない場合、このコードは完全に機能します。なんで?

4

1 に答える 1

2

変更された画像をディスクに保存していないため、機能しません。
現在のコード:

imagepng($picture);

変更された画像をブラウザーに送信しますが、HTML コードも出力しています。

<img src="mytest.png" />

コードを次のように変更します。

imagepng($picture, 'mytest.png'); // save the picture to disk

HTML コードは、変更された画像を表示します。

ドキュメントを確認してください: imagepng

この行を使用して、灰色を に格納する必要があります$grey

$grey = imagecolorallocate($picture, 235, 235, 240);

imagecolorresolveはまったく異なることを行います。

于 2012-09-02T16:12:15.410 に答える