GD实现缩略图合并
1.网站页面多图片显示
以下图片是一张大图跟四张小图通过css样式控制显示宽高组合的一张,在打开网站时,这里显示五张图片,则会给服务器发送5个请求。如果这样的显示效果比较多的话,服务器请求更大。
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'); ?> |