GD实现缩略图合并

  • 内容
  • 评论
  • 相关

1.网站页面多图片显示

以下图片是一张大图跟四张小图通过css样式控制显示宽高组合的一张,在打开网站时,这里显示五张图片,则会给服务器发送5个请求。如果这样的显示效果比较多的话,服务器请求更大。

clip_image001

2.使用GD扩展实现多图片合成一张

2.1 合并图像所需函数

Getimagesize – 取得图像大小

Imagecreatefromgif – 从 GIF 文件或 URL 新建一图像

Imagecreatefromjpeg – 从 JPEG 文件或 URL 新建一图像

Imagecreatefrompng – 从 PNG 文件或 URL 新建一图像

Imgcopy – 拷贝图像的一部分

Imagegif – 以 GIF 格式将图像输出到浏览器或文件

Imagejpeg – 以 JPEG 格式将图像输出到浏览器或文件

Imagepng – 以 PNG 格式将图像输出到浏览器或文件

获取图片的详细信息

Getimagesize()

用 Getimagesize 函数获得图像的尺寸,产生的是一个数组,$size[0]是宽,$size[1]是高。

2.2相关代码

<?php

$imgs = array();

$imgs[0] = 'imgs/1.png';

$imgs[1] = 'imgs/2.png';

$imgs[2] = 'imgs/3.png';

$imgs[3] = 'imgs/4.png';

$target = 'emp.png';

$target_img = imagecreatefrompng($target);

$source= array();

foreach ($imgs as $k=>$v){

$source[$k]['source'] = imagecreatefrompng($v);

$source[$k]['size'] = getimagesize($v);

}

imagecopy ($target_img,$source[0]['source'],2,2,0,0,$source[0]['size'][0],$source[0]['size'][1]);

$tmp=2;

for ($i=1; $i<4; $i++){

imagecopy($target_img,$source[$i]['source'],$tmp,314,0,0,$source[$i]['size'][0],$source[$i]['size'][1]);

$tmp += $source[$i]['size'][0]+3;

}

imagepng($target_img,'3.png');

?>

3.合成效果

clip_image002