0

2 つの画像をマージする必要があります。コードは次のようになります。

$image = imagecreatefromjpeg("images/big.jpg"); 
$image1 = imagecreatefrompng("small_image/8.png");
$size = getimagesize("small_image/8.png");


imagecopymerge($image, $image1, 400, 30, 0, 0, $size[0], $size[1], 100);
header('Content-Type: image/gif');
imagegif($image);
imagedestroy($image1);


フリスト画像は:

ここに画像の説明を入力

2番目は: ここに画像の説明を入力

最終結果が透明でない

ここに画像の説明を入力

助けてください!!!ありがとう!

新しいバージョンのコード:

$image = imagecreatefromjpeg("images/big.jpg"); 
$image1 = imagecreatefrompng("small_image/8.png");
$size = getimagesize("small_image/8.png");
$background = imagecolorallocate($image, 0, 0, 0);
imagecolortransparent($image, $background);
imagealphablending($image1, false);
imagesavealpha($image1, true);


imagecopymerge($image, $image1, 400, 30, 0, 0, $size[0], $size[1], 100);

header('Content-Type: image/gif');


imagegif($image);
imagedestroy($image1);

結果は次のとおりです。 ここに画像の説明を入力

4

1 に答える 1

1

わかりました..私は今解決策を見つけました..

$image = imagecreatefromjpeg("images/show01.jpg"); //
$image1 = imagecreatefrompng("small_image/1.png");//
$image3 = imagecreatefromgif("images/carBg.gif");//
$size = getimagesize("small_image/1.png");
$overlay = imagecreatetruecolor(80, 80);

$white = imagecolorallocate($overlay, 229, 229, 229);
imagefilledrectangle($overlay, 0, 0, 80, 80, $white);

imagecolortransparent($overlay,$white);  
     imagecopy($overlay, $image1, (80-$size[0])/2, (80-$size[1])/2, 0, 0,   $size[0],$size[1]);
imagecopymerge($image3, $overlay, 0, 0, 0, 0, 80, 80, 100);


imagecopymerge($image, $image3, 280, 30, 0, 0, 80, 80, 100);

header('Content-Type: image/png');

// and finally, output the result
imagepng($image);
imagedestroy($image);
于 2013-05-09T05:43:17.583 に答える