imagecopy()
是 PHP 中一个非常有用的函数,用于将一个图像的某一部分复制到另一个图像上
以下是使用 imagecopy()
的一个示例:
<?php
// 创建两个图像资源
$sourceImage = imagecreatefrompng('source.png');
$destinationImage = imagecreatefrompng('destination.png');
// 获取图像的宽度和高度
$sourceWidth = imagesx($sourceImage);
$sourceHeight = imagesy($sourceImage);
$destinationWidth = imagesx($destinationImage);
$destinationHeight = imagesy($destinationImage);
// 计算复制区域的起始点(例如:将源图像的右上角复制到目标图像的中心)
$srcX = $sourceWidth - $destinationWidth;
$srcY = $sourceHeight - $destinationHeight;
// 使用 imagecopy() 将源图像的一部分复制到目标图像上
imagecopy($destinationImage, $sourceImage, 0, 0, $srcX, $srcY, $destinationWidth, $destinationHeight);
// 输出新的图像资源到浏览器
header('Content-type: image/png');
imagepng($destinationImage);
// 释放内存
imagedestroy($sourceImage);
imagedestroy($destinationImage);
?>
在这个示例中,我们首先使用 imagecreatefrompng()
函数创建了两个图像资源,分别代表源图像和目标图像。然后,我们获取这两个图像的宽度和高度,以便在复制时进行正确的定位。
接下来,我们计算复制区域的起始点。在这个例子中,我们将源图像的右上角复制到目标图像的中心。然后,我们使用 imagecopy()
函数将源图像的一部分复制到目标图像上。这个函数的第一个参数是目标图像资源,第二个参数是源图像资源,第三个参数是目标图像中复制区域的左上角坐标,第四个参数是源图像中复制区域的左上角坐标,第五个参数和第六个参数分别是目标图像和源图像中复制区域的宽度和高度。
最后,我们将新的图像资源输出到浏览器,并使用 imagedestroy()
函数释放内存。