说说这三个函数吧,这三个函数都有一个共同点,那就是可以拷贝图像资源。但它们三个用起来的本质就有所区别,imagecopy() 拷贝图像资源的一部分,imagecopyresampled() 重采样拷贝部分图像并调整大小,imagecopyresized 拷贝部分图像并调整大小。对图片处理相对来说应用的比较多,下面来看看它们的用法。
参数:imagecopy($dst_img, $src_img, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h);
说明:dst_img 目标图像资源,src_img 源图像资源,dst_x 目标图像X坐标,dst_y 目标图像Y坐标,src_x 源图像X坐标,src_y 源图像Y坐标,src_w 源图像宽度,src_h 源图像高度
实例:
$imgUrl = "images/2222222222222222.jpg";//源图片路径
list($width, $height) = getimagesize($imgUrl); // 得到源图像的 width,height
$img = imagecreatefromjpeg($imgUrl);$newImg = imagecreatetruecolor($width, $height); //创建一个新的图像资源
for ($x=0; $x < $width; $x++) {
//逐条复制图片本身高度,1个像素宽度的图片到薪资源中imagecopy($newImg, $img, $width-$x-1, 0, $x, 0, 1, $height);
}
header("Context-type:image/jpeg");
imagejpeg($newImg);imagedestroy($img);
imagedestroy($newImg); //销毁图像资源
以上所实现的是利用imagecopy()来拷贝图片,对图片以Y轴进行翻转(左右翻转),当全部拷贝完时,就形成了新的图像资源,输出即可。
参数:imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h);
说明: dst_image 目标图象资源。 src_image 源图象资源。dst_x 目标 X 坐标点。dst_y 目标 Y 坐标点。src_x 源的 X 坐标点。src_y 源的 Y 坐标点。 dst_w 目标宽度。dst_h 目标高度。src_w 源图象的宽度。src_h 源图象的高度。
实例:
<?php
// 源文件
$filename = 'images/test.jpg';
// 设置最大宽高
$width = 200;
$height = 200;
// Content type
header('Content-Type: image/jpeg');
// 获取新尺寸
list($src_w, $src_h) = getimagesize($filename);
$ratio_orig = $src_w/$src_h;
if ($width/$height > $ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}
// 重新取样$image = imagecreatefromjpeg($filename);
$newImage = imagecreatetruecolor($width, $height);
imagecopyresampled($newImage, $image, 0, 0, 0, 0, $width, $height, $src_w, $src_h);
// 输出
imagejpeg($image_p, null, 100);
?>
上述例子按比例对图像重新采样,这个例子会以最大宽度高度为 200 像素显示一个图像。
参数:imagecopyresized ( $dst_image
, $src_image
, $dst_x
, $dst_y
, $src_x
, $src_y
, $dst_w
, $dst_h
, $src_w
, $src_h
)
说明:
dst_image
目标图象资源。
src_image
源图象资源。
dst_x
x-coordinate of destination point.
dst_y
y-coordinate of destination point.
src_x
x-coordinate of source point.
src_y
y-coordinate of source point.
dst_w
Destination width.
dst_h
Destination height.
src_w
源图象的宽度。
src_h
源图象的高度。
实例:
<?php
// File and new size
$filename = 'test.jpg';
$percent = 0.5;
// Content type
header('Content-Type: image/jpeg');
// Get new sizes
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// Output
imagejpeg($thumb);
?>
上述例子会以一半的尺寸显示图片(将一幅图像中的一块矩形区域拷贝到另一个图像中)。