1

外部URLから画像を取得するスクリプトを作成しています。次に、imagecopy()を使用して画像をマージします。これは、透明な画像だからです。ただし、X座標を0以外に指定すると、画像の横に黒い領域が作成されます。これが私のコードの一部です。

$src = imagecreatefrompng("URL...");
imagecopy($im, $src, 0, 0, 50, 18, 300, 300);

これを修正する方法はありますか?

4

2 に答える 2

2

こんにちは、フォーラムへようこそ!

これらの行をそれらの途中に追加する必要があるため、終了コードは次のようになります。

$src = imagecreatefrompng("URL...");
imagealphablending($im, false);
imagesavealpha($im, true);
imagecopy($im, $src, 0, 0, 50, 18, 300, 300);

これでうまくいくはずです!

于 2012-12-10T17:25:07.153 に答える
0

私は何年もかけて透明性を確保し、あなたのケースに合わせて修正しましたが、テストはしていません。

$newImg=imagecreatetruecolor($im_width,$im_height);
imagealphablending($newImg,false);
imagesavealpha($newImg,true);
$transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127);
imagefilledrectangle($newImg, 0, 0, $im_width, $im_height, $transparent);
imagecopyresampled($newImg, $im, 0, 0, 0, 0, $im_width, $im_height, $im_width, $im_height);
imagecopy($newImg, $src, 0, 0, 50, 18, 300, 300);
于 2012-12-10T17:53:18.970 に答える