php7实践指南-ch12图像处理图片处理

12.3 图片处理

本节介绍图片的复制旋转和图片水印处理。

12.3.1 复制图像

imagecopy可用来复制图像,语法如下:

function imagecopy ($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h) bool

此函数的作用是将src_im图像中坐标从(src_x, src_y)开始、宽度为src_w、高度为src_h的一部分复制到dst_im图像中坐标为(dst_x, dst_y)的位置上。

示例如下:

<?php
$imdst = imagecreatefromjpeg('1.jpg');
$imsrc = imagecreatefrompng('3.png');

imagecopy($imdst,$imsrc,10,10,0,0,512,512);
header('Content-Type:image/gif');
imagejpeg($imdst);
imagedestroy($imdst);

执行以上代码,在浏览器中的输出结果:

12.3.2 旋转图像

imagerotate可将图像旋转一个给定的角度。语法如下:

function imagerotate ($image, $angle, $bgd_color, $ignore_transparent = null) false|resource

该函数将src_im图像用给定的angle角度旋转。返回旋转后的图像资源,或者在失败时返回false。bgd_color指定旋转后没有覆盖到的部分颜色。ignore_transparent如果被设为非零值,那么透明色会被忽略(否则会被保留)。

转的中心是图像的中心,旋转后的图像会按比例缩小,以适合目标图像的大小——边缘不会被剪去。

使用示例如下:

<?php
//File and rotation
$filename = '1.jpg';
$degrees = 100;
//Content type
header('Content-Type:image/jpeg');
//Load
$source = imagecreatefromjpeg($filename);
//Rotate
$rotate= imagerotate($source,$degrees,0);
//Output
imagejpeg($rotate);
imagedestroy($rotate);

12.3.3 图像水印

图像水印就是把一张图片复制到另外一张背景图片上。这里介绍一下imagecopymerge()函数,其作用是复制合并图像的一部分,语法如下:

function imagecopymerge ($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct) bool

该函数可以将src_im图像中坐标从(src_x, src_y)开始,宽度为src_w、高度为src_h的一部分复制到dst_im图像中坐标为(dst_x, dst_y)的位置上。两个图像将根据pct来决定合并程度,其值范围从0到100。当pct=0时,实际上什么也没做;当pct:100时,对于调色板图像,本函数和imagecopy()完全一样,对真彩色图像实现了alpha透明。

使用示例如下:

<?php
$imgObj = imagecreatefromjpeg('1.jpg');
$imwater = imagecreatefrompng('3.png');

imagecopymerge($imgObj,$imwater, 20,20,0,0,512,512,50);

header('Content-Type:image/jpeg');
imagejpeg($imgObj);
imagedestroy($imgObj);

执行以上代码,将图像3.png复制到图像1jpg上.如图12-13所示。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值