4

見つけたすべての方法を検索して試しましたが、管理できませんでした。

私がやろうとしているのは、2つの事前生成された(php gdで)画像を、それらの間にスペースを空けて並べて配置することです。

これらの行でこれらの 2 つのイメージを作成します。

$sideMask = imagecreatefrompng($maskFile);
imagealphablending($sideMask, false); 
imagesavealpha($sideMask, true);

$image_blank = imagecreatetruecolor($newWidth,$newHeight);

$white = imagecolorallocate($image_blank, 255, 255, 255);
imagefill($image_blank, 0, 0, $white);

imagecopy($image_blank, $ResizedSourceFile, 0, 0, 0, 0, $newWidth, $newHeight);
imagecopy($image_blank, $sideMask, $maskX, 0, 0, 0, $maskWidth, $maskHeight);

$image_blank_mask = imagecreatetruecolor($maskWidth,$maskHeight);

imagecopy($image_blank_mask, $image_blank, 0, 0, $maskX, 0, $maskWidth, $maskHeight);

return $image_blank_mask;

そして、それらをこれらと組み合わせようとしています:

$maxHeight = 1626;
$sideSpace = 35;

$maxWidth = 1522 + $sideSpace;

$Img01 = $Img01Created;
$Img02 = $Img02Created;

$BothSideBlank = imagecreatetruecolor($maxWidth,$maxHeight);
$white = imagecolorallocate($BothSideBlank, 255, 255, 255);
imagefill($BothSideBlank, 0, 0, $white);

imagecopy($BothSideBlank, $Img01, 0, 0, 0, 0, $maxWidth, $maxHeight);
imagecopy($BothSideBlank, $Img02, (763+$sideSpace), 0, 0, 0, $maxWidth, $maxHeight);

imagejpeg($BothSideBlank, "Test.jpg",100);

このコードでは、画像間に黒い背景があります。実際には、画像の背景の右側は黒です。私が削除した場合

imagecopy($BothSideBlank, $Img01, 0, 0, 0, 0, $maxWidth, $maxHeight);

この線の背景は予想どおり白です。しかし、他の行を削​​除してこの行を追加すると。背景は黒です。

私はすべてのことを試しましたが、うまくいきませんでした。

私は何かが恋しいですか?

これらの画像の生成中のせいでしょうか?

どんな助けでも大歓迎です。

ありがとうございました。

4

1 に答える 1

4

「imagecopy」の「$maxWidth」と「$maxHeight」の代わりに正しいサイズを使用してください。

$size01 = getimagesize($Img01);
$size02 = getimagesize($Img02);

imagecopy($BothSideBlank, $Img01, 0, 0, 0, 0, $size01[0], $size01[1]);
imagecopy($BothSideBlank, $Img02, ($size01[0]+$sideSpace), 0, 0, 0, $size02[0], $size02[1]);
于 2013-10-15T11:53:05.837 に答える