在php中合并两个图像 [英] Merge two images in php
问题描述
我想要合并两张图片然后保存到新位置。
我希望第二张图片直接放在第一张图片下方。
我有以下是如此,但图像甚至没有保存。
I have two images I would like to merge then save to a new location.
I would like the second image to be place directly below the first image.
I have the following so for but the image doesn't even save.
$destimg = imagecreatefromjpeg('images/myimg.jpg');
$src = imagecreatefromgif('images/second.gif');
// Copy and merge
imagecopymerge($destimg, $src, 316, 100, 0, 0, 316, 100, 100);
两张图片都有宽度或316px X 100px
从上面的代码$ destimg现在应该是316x200,但这不会发生。也喜欢它是一个新的图像并保存到另一个文件夹。
Both images have a width or 316px X 100px
From the above code the $destimg should now be 316x200 but that doesn't happen. Also like it to be a new image and save to another folder.
感谢您的帮助。
推荐答案
这种情况的最佳方法可能是在内存中创建一个具有所需组合尺寸的新图像,然后将现有图像复制或重新采样到新图像,然后将新图像保存到磁盘。
The best approach for this situation may be to create a new image in memory with the combined dimensions you desire, then copy or resample the existing images to the new image, and then save the new image to disk.
例如:
function merge($filename_x, $filename_y, $filename_result) {
// Get dimensions for specified images
list($width_x, $height_x) = getimagesize($filename_x);
list($width_y, $height_y) = getimagesize($filename_y);
// Create new image with desired dimensions
$image = imagecreatetruecolor($width_x + $width_y, $height_x);
// Load images and then copy to destination image
$image_x = imagecreatefromjpeg($filename_x);
$image_y = imagecreatefromgif($filename_y);
imagecopy($image, $image_x, 0, 0, 0, 0, $width_x, $height_x);
imagecopy($image, $image_y, $width_x, 0, 0, 0, $width_y, $height_y);
// Save the resulting image to disk (as JPEG)
imagejpeg($image, $filename_result);
// Clean up
imagedestroy($image);
imagedestroy($image_x);
imagedestroy($image_y);
}
示例:
merge('images/myimg.jpg', 'images/second.gif', 'images/merged.jpg');
这篇关于在php中合并两个图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!