外部URLから画像を取得するスクリプトを作成しています。次に、imagecopy()を使用して画像をマージします。これは、透明な画像だからです。ただし、X座標を0以外に指定すると、画像の横に黒い領域が作成されます。これが私のコードの一部です。
$src = imagecreatefrompng("URL...");
imagecopy($im, $src, 0, 0, 50, 18, 300, 300);
これを修正する方法はありますか?
外部URLから画像を取得するスクリプトを作成しています。次に、imagecopy()を使用して画像をマージします。これは、透明な画像だからです。ただし、X座標を0以外に指定すると、画像の横に黒い領域が作成されます。これが私のコードの一部です。
$src = imagecreatefrompng("URL...");
imagecopy($im, $src, 0, 0, 50, 18, 300, 300);
これを修正する方法はありますか?
こんにちは、フォーラムへようこそ!
これらの行をそれらの途中に追加する必要があるため、終了コードは次のようになります。
$src = imagecreatefrompng("URL...");
imagealphablending($im, false);
imagesavealpha($im, true);
imagecopy($im, $src, 0, 0, 50, 18, 300, 300);
これでうまくいくはずです!
私は何年もかけて透明性を確保し、あなたのケースに合わせて修正しましたが、テストはしていません。
$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);