imagecopymerge()
是 PHP 中用于合并两个图像的函数
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 = 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),并将其合并到目标图像上。你可以根据需要调整裁剪区域的坐标和尺寸。