PHP中怎样完成图像的缩放和裁剪

  • imagecopyresampled :用于重采样拷贝部分图像并调整大小

  • imagecopyresized :用于拷贝部分图像并调整大小

这两个函数拷贝图片的,可以用于完成图像的缩放或者裁剪。它们的语法格式参数是一样的,不同的是它们拷贝的图片是部分还是整张的。它们的语法格式如下:

  1. imagecopyresampled ($目标图 ,$来源图,$目标开始的x位置,$目标开始的y位置,$来源开始的x位置,$来源开始的y位置,$目标图片的宽 ,$目标图片的高,$来源图片的宽 ,$来源图片的高 )

 

从来源图片的开始点(x,y)起,指定的宽高的大小图片。放至到目标图片的起点(x,y),指定宽高大小的图片中。

缩放图片

缩放图片首先我们先准备一张名为dog.png的图片

<?PHP
//打开来源图片
$a = imagecreatefrompng('dog.png');
//定义百分比,缩放到0.1大小
$percent = 0.1;
// 将图片宽高获取到
list($width, $height) = getimagesize('dog.png');
//设置新的缩放的宽高
$new_width = $width * $percent;
$new_height = $height * $percent;
//创建新图片
$new_image = imagecreatetruecolor($new_width, $new_height);
//将原图$image按照指定的宽高,复制到$new_image指定的宽高大小中
imagecopyresampled($new_image, $a, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
header('content-type:image/jpeg');
imagejpeg($new_image);
?>

输出结果:

 

由上述结果,通过imagecopyresampledh函数便完成了图像的缩放。

裁剪图片

裁剪图片,需要通过imagecopyresized函数来实现。接下来我们通过一个示例来解释一下:

我有两张名为dog.png和logo.png的图片

现在想要吧logo图片裁剪一些放在dog图片上,那应该怎么实现呢?下面是主要步骤:

实际操作如下:

logo图片中,我想要把文字部分裁剪掉,只保留图像部分,我们可以知道想要保留的图像部分开始的坐标是(0,0),结束的坐标是(52,59)。

 

 

那我们就把裁剪过后的图片放到目标图片左上角,正好坐标也就是从(0,0)到(52,59),既然已经整理好了思路,代码如下:

 

<?PHP
 $dst = imagecreatefrompng('dog.png');
 $src = imagecreatefrompng('logo.png');
 imagecopyresized($dst, $src, 0, 0, 0, 0, 52, 59, 52, 59);
 header('content-type:image/jpeg'); 
imagejpeg($dst); 
imagedestroy($dst);
 imagedestroy($src);
 ?>

输出结果:

由上述结果,我们便完成了通过imagecopyresizedh函数的图像裁剪。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值