- <?php
- function mergerImg($imgs) {
-
- list($max_width, $max_height) = getimagesize($imgs['dst']);
- $dests = imagecreatetruecolor($max_width, $max_height);
-
- $dst_im = imagecreatefrompng($imgs['dst']);
-
- imagecopy($dests,$dst_im,0,0,0,0,$max_width,$max_height);
- imagedestroy($dst_im);
-
- $src_im = imagecreatefrompng($imgs['src']);
- $src_info = getimagesize($imgs['src']);
- imagecopy($dests,$src_im,0,$max_height/2,0,0,$src_info[0],$src_info[1]);
- imagedestroy($src_im);
-
- header("Content-type: image/jpeg");
- imagejpeg($dests);
- }
-
- $imgs = array(
- 'dst' => 'http://www.wangshangyou.com/content/uploadfile/201312/b3241386050881.png',
- 'src' => 'http://www.wangshangyou.com/content/uploadfile/201312/72691386051117.png'
- );
-
- mergerImg($imgs);
核心的思想就是getimagesize获取用户上传图片的信息
说明 ¶
$filename
[,
array &$imageinfo
] )
getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型和一个可以用于普通 HTML 文件中 IMG
标记中的 height/width 文本字符串。
如果不能访问 filename
指定的图像或者其不是有效的图像, getimagesize() 将返回 FALSE
并产生一条 E_WARNING 级的错误。
Note:
对 JPC,JP2,JPX,JB2,XBM 和 WBMP 的支持自 PHP 4.3.2 起可用。对 SWC 的支持自 PHP 4.3.0 起可用。对 TIFF 的支持是 PHP 4.2.0 添加的。
Note: JPEG 2000 支持是 PHP 4.3.2 添加的。注意 JPC 和 JP2 可以有不同的色彩深度的成分。此情况下,“bits”的值是碰到的最高的位深度。此外,JP2 文件可能包含有多个 JPEG 2000 代码流,此情况下, getimagesize() 返回此文件顶层中碰到的第一个代码流的值。
Note: 本函数不需要 GD 图像库。
返回一个具有四个单元的数组。索引 0 包含图像宽度的像素值,索引 1 包含图像高度的像素值。索引 2 是图像类型的标记:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。这些标记与 PHP 4.3.0 新加的 IMAGETYPE 常量对应。索引 3 是文本字符串,内容为“height="yyy" width="xxx"”,可直接用于 IMG 标记。
然后在通过imagecreatetruecolor创建一个真彩色图片流
说明 ¶
$width
,
int $height
)
imagecreatetruecolor() 返回一个图像标识符,代表了一幅大小为 x_size
和 y_size
的黑色图像。
是否定义了本函数取决于 PHP 和 GD 的版本。从 PHP 4.0.6 到 4.1.x 只要加载了 GD 模块本函数一直存在,但是在没有安装 GD2 的时候调用,PHP 将发出致命错误并退出。在 PHP 4.2.x 中此行为改为发出警告而不是错误。其它版本只在安装了正确的 GD 版本时定义了本函数。
参数 ¶
-
图像宽度。
-
图像高度。
width
height
返回值 ¶
成功后返回图象资源,失败后返回 FALSE
。
然后通过imagecreatefrompng(png的图片处理函数imagecreatefrompng,jpg的图片处理函数imagecreatefromjpeg,gif的处理函数imagecreatefromgif)由文件或 URL 创建一个新图象
说明 ¶
$filename
)
imagecreatefrompng() 返回一图像标识符,代表了从给定的文件名取得的图像。
如已启用fopen 包装器,在此函数中, URL 可作为文件名。关于如何指定文件名详见 fopen()。各种 wapper 的不同功能请参见支持的协议和封装协议,注意其用法及其可提供的预定义变量。
参数 ¶
-
PNG 图像的路径。
filename
返回值 ¶
成功后返回图象资源,失败后返回 FALSE
。
最后通过imagecopy函数将愿图片拷贝到新创建的图片上
说明
$dst_im
,
resource $src_im
,
int $dst_x
,
int $dst_y
, int
$src_x
,
int $src_y
,
int $src_w
,
int $src_h
)
将 src_im
图像中坐标从 src_x
,src_y
开始,宽度为 src_w
,高度为 src_h
的一部分拷贝到 dst_im
图像中坐标为dst_x
和 dst_y
的位置上。
如果需要合并多张图片只需要修改imagecopy就可以了
最后看看效果把
原图
logo
生成的