使用PHP GD

时间:2016-10-06 13:42:59

标签: php image gd

我需要将图像放置在另一个图像的中心(水平和垂直),尺寸为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也会被删除。我在这做错了什么?

任何人都可以帮我解决这个问题吗?提前谢谢。

1 个答案:

答案 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);

enter image description here

您已指定目标图像的中心作为目标坐标和整个目标图像大小,而不是中心矩形所需的尺寸,源图像将调整到该尺寸。

你也没有imagedestroy,你完全应该这样做。