我需要将图像放置在另一个图像的中心(水平和垂直),尺寸为700 * 350。我尝试使用以下代码。但是我让图像变得拉长。
@header("Content-Type: image/png");
$imageURL = "flower.jpg";
// create a transparent background image for placing the $imageURL image
$imageResource = imagecreatetruecolor(700, 350);
imagesavealpha($imageResource, true);
$transparentColor = imagecolorallocatealpha($imageResource, 0, 0, 0, 127);
imagefill($imageResource, 0, 0, $transparentColor);
$backgroundImage = imagecreatefromjpeg($imageURL);
list($width, $height) = getimagesize($imageURL);
imagecopyresampled($imageResource, $backgroundImage, 350, 175, 0, 0, 700, 350, $width, $height);
imagepng($imageResource, "newimage.jpg");
这不是图像的中心,而且当我运行此代码时,文件flower.jpg也会被删除。我在这做错了什么?
任何人都可以帮我解决这个问题吗?提前谢谢。
答案 0 :(得分:1)
所以你需要这样的东西吗?
@header("Content-Type: image/png");
$imageURL = "flower.jpg";
// create a transparent background image for placing the $imageURL image
$imageResource = imagecreatetruecolor(700, 350);
imagesavealpha($imageResource, true);
$transparentColor = imagecolorallocatealpha($imageResource, 0, 0, 0, 127);
imagefill($imageResource, 0, 0, $transparentColor);
$backgroundImage = imagecreatefromjpeg($imageURL);
list($width, $height) = getimagesize($imageURL);
imagecopyresampled($imageResource, $backgroundImage, 175, 85, 0, 0, 350, 175, $width, $height);
imagepng($imageResource, "newimage.jpg");
imagedestroy($imageResource);
imagedestroy($backgroundImage);
您已指定目标图像的中心作为目标坐标和整个目标图像大小,而不是中心矩形所需的尺寸,源图像将调整到该尺寸。
你也没有imagedestroy
,你完全应该这样做。