阅读量:94
imagecopymerge() 是 PHP 中用于合并两个图像的函数
- 创建两个图像资源:一个源图像(source image)和一个目标图像(destination image)。你可以使用
imagecreatefromjpeg()、imagecreatefrompng()等函数来创建图像资源。
$sourceImage = imagecreatefromjpeg('source.jpg');
$destinationImage = imagecreatefromjpeg('destination.jpg');
- 获取图像的宽度和高度:使用
imagesx()和imagesy()函数获取源图像和目标图像的尺寸。
$sourceWidth = imagesx($sourceImage);
$sourceHeight = imagesy($sourceImage);
$destinationWidth = imagesx($destinationImage);
$destinationHeight = imagesy($destinationImage);
- 创建一个矩形区域:定义要裁剪的源图像区域的坐标($srcX,$srcY)以及宽度和高度($srcWidth,$srcHeight)。
$srcX = 10;
$srcY = 10;
$srcWidth = 100;
$srcHeight = 100;
- 使用
imagecopy()函数将裁剪后的源图像区域复制到目标图像上。
imagecopy($destinationImage, $sourceImage, $srcX, $srcY, $srcWidth, $srcHeight);
- 保存或输出合并后的图像:使用
imagejpeg()、imagepng()等函数将目标图像保存到文件或输出到浏览器。
imagejpeg($destinationImage, 'destination_cropped.jpg');
// 或者输出到浏览器
header('Content-type: image/jpeg');
imagejpeg($destinationImage);
- 释放内存:使用
imagedestroy()函数释放图像资源。
imagedestroy($sourceImage);
imagedestroy($destinationImage);
将以上代码整合在一起,完整的示例如下:
<?php
// 创建源图像和目标图像资源
$sourceImage = imagecreatefromjpeg('source.jpg');
$destinationImage = imagecreatefromjpeg('destination.jpg');
// 获取图像尺寸
$sourceWidth = imagesx($sourceImage);
$sourceHeight = imagesy($sourceImage);
$destinationWidth = imagesx($destinationImage);
$destinationHeight = imagesy($destinationImage);
// 定义要裁剪的源图像区域
$srcX = 10;
$srcY = 10;
$srcWidth = 100;
$srcHeight = 100;
// 将裁剪后的源图像区域复制到目标图像上
imagecopy($destinationImage, $sourceImage, $srcX, $srcY, $srcWidth, $srcHeight);
// 保存或输出合并后的图像
imagejpeg($destinationImage, 'destination_cropped.jpg');
// 或者输出到浏览器
header('Content-type: image/jpeg');
imagejpeg($destinationImage);
// 释放内存
imagedestroy($sourceImage);
imagedestroy($destinationImage);
?>
这个示例将从源图像中裁剪一个矩形区域(10,10,110,110),并将其合并到目标图像上。你可以根据需要调整裁剪区域的坐标和尺寸。