PHP应用GD库-图片缩略图以及水印函数

  • 2,127

图像复制(水印)/图像半透明提制/图像的按比例复制(缩略)

在画布上复制两张图片,第二张图片位于第一张右边的20像素处

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

参数分析:画布资源、小图、画布x轴、画布y轴、小图x轴、小图y轴、小图宽、小图高。

/***
在画布上复制两张图片,第二张图片位于第一张右边的20像素处!
小图:330*379
大图的宽 330*2+20, 高 379
***/

$sw = 330;  // 小图的宽
$sh = 379;  // 小图的高
$big = imagecreatetruecolor($sw*2+20,$sh);// 创建大图的画布
$gray = imagecolorallocate($big,200,200,200);// 创建灰色
imagefill($big,0,0,$gray);// 填充灰色大图
$small = imagecreatefrompng('./feng.png');// 再读小图
//参数分析:画布资源、小图、画布x轴、画布y轴、小图x轴、小图y轴、小图宽、小图高。
imagecopy($big,$small,0,0,0,0,330,379);// 复制小图
imagecopy($big,$small,$sw+20,0,0,0,330,379);
header('content-type: image/png;');// 输出
imagepng($big);
imagedestroy($im);// 销毁

PHP应用GD库-图片缩略图以及水印函数

 

 

问:复制的图片能否小一点呢?复制的图片能否带点透明效果呢?

重采样拷贝部分图像并调整大小

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 )

参数分析:画布、小图、画布x、画布y、小图x、小图y、画布宽、画布高、小图宽、小图高。

/***
问:复制的图片能否小一点呢?复制的图片能否带点透明效果呢?
答:能
imagecopyresampled
imagecopymerge
***/


/*
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 )

复制图片并允许调整大小(可以做缩略图)
*/
$ow = 330;  // 原图宽度
$oh = 379;  // 原图高度
$nw = (int)$ow/2; // 缩略宽度
$nh = (int)$oh/2; // 缩略高度
$dst = imagecreatetruecolor($nw,$nh);// 创建缩略图画面
$src = imagecreatefrompng('./feng.png');// 读取原始图
imagecopyresampled($dst,$src,0,0,0,0,$nw,$nh,$ow,$oh);// 复制完毕
imagepng($dst,'./smallfeng.png');// 输出
imagedestroy($dst);

PHP应用GD库-图片缩略图以及水印函数

 

 

透明复制

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 )

参数分析:画布资源、小图资源、画布x、画布y、小图x、小图y、小图宽、小图高、合并程度。

当为 pct = 100 时对于调色板图像本函数和 imagecopy() 完全一样,知道了用法,要实现我们的功能就简单了,用下面的代码就可以轻松实现,代码如下:

$dst = imagecreatefromjpeg('home.jpg');// 读取大图
$src = imagecreatefrompng('smallfeng.png');// 读取小图
imagealphablending ( $src , true);
imagealphablending ( $dst , true);
imagecopymerge($dst,$src,410,63,0,0,165,189,40);
echo imagejpeg($dst,'./ad.jpeg')?'OK':'FAIL';

PHP应用GD库-图片缩略图以及水印函数

 

weinxin
我的微信
这是我的微信扫一扫
开拓者博主
  • 本文由 发表于 2016年11月23日13:24:44
  • 转载请务必保留本文链接:https://www.150643.com/411.html
匿名

发表评论

匿名网友 填写信息

评论:4   其中:访客  4   博主  0
    • 头盔 头盔 0

      雪莱学习来了 不辞哦啊

        • 开拓者博主 开拓者博主

          @ 头盔 :razz:

        • 马超金博客 马超金博客 1

          都是代码,看不懂,呵呵