GD 函数合成图片问题(一张jpg,一张png)
程序员文章站
2024-01-29 12:11:16
...
RT:
请问用php怎么能合成两张图片呢?
一张是png 透明的底图,另一张是jpg 图片
现在想让jpg的图片合成到png的底图上面,成为一张新的图片,如何实现呢?
另外问下,是不是合成的图片要尺寸一样大呢?还是底图可以大点的?
本人在网上也找了一些方法,但好像都不行
做过类似的,给个解决方案吧...
谢谢版主了,我先试试看!
不知道哪里的问题....
不知道哪里的问题....
imagejpeg生成的是jpg格式的图片。imgpng生成的才是png格式的图片。
你的之所以出现”怪“代码,是因为没有加上header,所以被当做二进制数据直接输出了。
前面加上header("content-type:image/png");
然后用imgpng生成图片。
昨天研究了一下午,终于搞定了
请问用php怎么能合成两张图片呢?
一张是png 透明的底图,另一张是jpg 图片
现在想让jpg的图片合成到png的底图上面,成为一张新的图片,如何实现呢?
另外问下,是不是合成的图片要尺寸一样大呢?还是底图可以大点的?
本人在网上也找了一些方法,但好像都不行
$path_1 = "topic_assets/522592b5d61cb_ip4.jpg"; $path_2 = "topic_assets/topic_border_android.png"; //echo $path_1; $image=imagecreatefromjpeg($path_1); $wm=imagecreatefrompng($path_2); $im=imagecreatetruecolor(imagesx($image),imagesy($image)); imagecopy($im,$image,0,0,0,0,imagesx($image),imagesy($image)); imagecopy($im,$wm,0,0,0,0,imagesx($wm),imagesy($wm));
做过类似的,给个解决方案吧...
回复讨论(解决方案)
GD 提供了很多函数,你总得都去试试吧!比如这个怎么样?
$t1 = 'http://avatar.csdn.net/1/C/9/1_mahuatengbc.jpg';$t2 = 'http://avatar.csdn.net/2/5/B/1_yykr1987.jpg';$im1 = imagecreatefromjpeg($t1);$im2 = imagecreatefromjpeg($t2);imagecopymerge($im1, $im2, 35, 5, 0, 0, imagesx($im2), imagesy($im2), 63);imagejpeg($im1);
GD 提供了很多函数,你总得都去试试吧!比如这个怎么样?
$t1 = 'http://avatar.csdn.net/1/C/9/1_mahuatengbc.jpg';$t2 = 'http://avatar.csdn.net/2/5/B/1_yykr1987.jpg';$im1 = imagecreatefromjpeg($t1);$im2 = imagecreatefromjpeg($t2);imagecopymerge($im1, $im2, 35, 5, 0, 0, imagesx($im2), imagesy($im2), 63);imagejpeg($im1);
谢谢版主了,我先试试看!
艾玛,吓死我了!
我的要求是一张jpg ,一张png ,png做底图, 合成的也是png格式的!
按照版主的做法,出现了一大堆奇怪的乱码 ,如下图
我的代码是这样的:
$path_1 = "522592b5d61cb_ip4.jpg"; $path_2 = "topic_border_android.png"; $im1 = imagecreatefromjpeg($path_1); $im2 = imagecreatefrompng($path_2); imagecopymerge($im1, $im2, 35, 5, 0, 0, imagesx($im2), imagesy($im2), 63); imagejpeg($im2); imagedestroy($im2);
不知道哪里的问题....
艾玛,吓死我了!
我的要求是一张jpg ,一张png ,png做底图, 合成的也是png格式的!
按照版主的做法,出现了一大堆奇怪的乱码 ,如下图
我的代码是这样的:
$path_1 = "522592b5d61cb_ip4.jpg"; $path_2 = "topic_border_android.png"; $im1 = imagecreatefromjpeg($path_1); $im2 = imagecreatefrompng($path_2); imagecopymerge($im1, $im2, 35, 5, 0, 0, imagesx($im2), imagesy($im2), 63); imagejpeg($im2); imagedestroy($im2);
不知道哪里的问题....
imagejpeg生成的是jpg格式的图片。imgpng生成的才是png格式的图片。
你的之所以出现”怪“代码,是因为没有加上header,所以被当做二进制数据直接输出了。
前面加上header("content-type:image/png");
然后用imgpng生成图片。
也不一定
也可能是 BOM 头的关系
谢谢楼上的,但是图片没保存下来?
我只是在浏览器看到这个图片了,但是我想在文件夹中找到这个图片,就没有,是合成的图片,不能保存吗?
而且这图片的后面有黑色的阴影,这个能去掉么!
imagejpeg($im2, '图片文件名');
header("content-type:image/png"); //合成两张图片 $targetFileDark="522ec9db6b46b"; $dest = imagecreatefrompng('topic_border_android.png'); $src = imagecreatefromjpeg($targetFileDark."_ip4.jpg"); $newim = imagecreatetruecolor(103,92); $back = imagecolorallocatealpha($newim, 0, 0, 0, 127); imagefilledrectangle($src, 0, 0, 98, 58, $back); imagealphablending($dest, false); imagesavealpha($dest, true); imagecopymerge($dest, $src, 36,11,0,0,imagesx($src), imagesy($src),100); imagepng($dest,$targetFileDark."_android.png"); imagedestroy($dest); imagedestroy($src);
昨天研究了一下午,终于搞定了
推荐阅读
-
GD 函数合成图片问题(一张jpg,一张png)
-
GD 函数合成图片有关问题(一张jpg,一张png)
-
GD 函数合成图片有关问题(一张jpg,一张png)
-
网站空间 禁用了GD库的生成jpg图片格式的相关函数 但没有禁用GD库和其他函数,能不能统一转换成png格式的图片
-
网站空间 禁用了GD库的生成jpg图片格式的相关函数 但没有禁用GD库和其他函数,能不能统一转换成png格式的图片
-
网站空间 禁用了GD库的生成jpg图片格式的有关函数 但没有禁用GD库和其他函数,能不能统一转换成png格式的图片
-
网站空间 禁用了GD库的生成jpg图片格式的有关函数 但没有禁用GD库和其他函数,能不能统一转换成png格式的图片
-
GD 函数合成图片有关问题(一张jpg,一张png)