我搜索并尝试了我发现的所有方法但是我无法管理。
我要做的是:将两个预生成(与php gd)图像并排放置,并在它们之间留出空格。
我使用以下几行创建这两个图像:
$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);
这条线背景是白色的,正如我预期的那样。但如果我删除另一行并添加此行。背景是黑色的。
我已经尝试了所有的东西,但无法管理它。
我想念一下吗?
可能是因为在生成这些图像的时候?
任何帮助将不胜感激。
谢谢。
答案 0 :(得分:3)
在'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]);