缩略图
所用函数:
- imagecopyresampled — 重采样拷贝部分图像并调整大小
bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )
imagecopyresampled() 将一幅图像中的一块正方形区域拷贝到另一个图像中,平滑地插入像素值,因此,尤其是,减小了图像的大小而仍然保持了极大的清晰度。
//缩略图:
$ow = 500;//原图宽度
$oh = 301 ;//原图高度
$nw = (int)$ow/2;//缩略后的宽度
$nh = (int)$oh/2;//缩略后的高度
//创建缩略图画布
$des = imagecreatetruecolor($nw, $nh);
//读取原始图
$src = imagecreatefromjpeg('./8ouak6.jpg');
//开始复制
imagecopyresampled($des,$src,0,0,0,0,$nw,$nh,$ow,$oh);
//输出
imagejpeg($des,'./small1.jpg');
imagedestroy($des);
运行结果:生成新的图片small1.jpg
水印
所用函数:
- imagecopymerge — 拷贝并合并图像的一部分
bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )
将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。两图像将根据 pct 来决定合并程度,其值范围从 0 到 100。当 pct = 0 时,实际上什么也没做,当为 100 时对于调色板图像本函数和 imagecopy() 完全一样,它对真彩色图像实现了 alpha 透明。
//水印
//读取大图
$des = imagecreatefromjpeg('./7.jpg');
//读取小图
$src = imagecreatefromjpeg('./small.jpg');
imagecopymerge($des,$src,1000,1000,0,0,250,150,30);
echo imagejpeg($des,'./ad.jpeg')?'OK':'FAIL';
运行结果: