php 合成png,php 在png格式的图片上合成文字?

RT

需要在png格式的图片上合成一些文字,但是为什么会有黑色的背景?

原图是

但是我生成的图片是这样的

浏览器看的效果

我需要在原图下面的空白处合成一些字在居中位置,请高手帮帮忙!

回复讨论(解决方案)

你是可能从真彩背景(imagecreatetruecolor)中创建的画布

imagecreatetruecolor() 返回一个图像标识符,代表了一幅大小为 x_size 和 y_size 的黑色图像。

不妨贴下你的代码看看

图片使用了 png 特有的透明效果(photshop看到的是全透明效果)

在 GD 中拷贝一下就可以了$url = 'http://img.bbs.csdn.net/upload/201310/29/1383042869_349074.png';$im1 = imagecreatefrompng($url);$im2 = imagecreatetruecolor(imagesx($im1), imagesy($im1));$bg = imagecolorallocate($im2, 255, 255, 255);imagefill($im2, 0, 0, $bg);imagecopy($im2, $im1, 0, 0, 0, 0, imagesx($im1), imagesy($im1));imagepng($im2);

图片使用了 png 特有的透明效果(photshop看到的是全透明效果)

在 GD 中拷贝一下就可以了$url = 'http://img.bbs.csdn.net/upload/201310/29/1383042869_349074.png';$im1 = imagecreatefrompng($url);$im2 = imagecreatetruecolor(imagesx($im1), imagesy($im1));$bg = imagecolorallocate($im2, 255, 255, 255);imagefill($im2, 0, 0, $bg);imagecopy($im2, $im1, 0, 0, 0, 0, imagesx($im1), imagesy($im1));imagepng($im2);

但是我要的是这样的效果啊,就是不破坏原有的png图片的情况下,在图片的下面空白处,加一些文字啊。效果如下图

帮忙看看,该怎么实现呢?

人都哪去了,媒人愿意帮帮忙么?

百度都百了半天了

你是可能从真彩背景(imagecreatetruecolor)中创建的画布

imagecreatetruecolor() 返回一个图像标识符,代表了一幅大小为 x_size 和 y_size 的黑色图像。

不妨贴下你的代码看看$file = '1.png'; #打开图片 $im = @imagecreatefrompng($file); #设置水印字体颜色 $color = imagecolorallocatealpha($im,0,0,0); #设置字体文件路径 $fontfile = "msyhbd.ttf"; #水印文字 $str = "我们都是好孩子"; #打水印 imagettftext($im,30,0,50,400,$color,$fontfile,$str);imagettftext($im,20,0,50,450,$color,$fontfile,$str);imagettftext($im,20,0,50,480,$color,$fontfile,$str); header("Content-Type: image/png"); $newfile = imagepng($im);//imagedestroy($im); // imagejpeg($im,'water.jpg');

请帮忙看看,谢谢!

y坐标400不都跑到图片外去了吗?$url = 'http://img.bbs.csdn.net/upload/201310/29/1383042869_349074.png';$im1 = imagecreatefrompng($url);//这几行必须有,否则原图的阴影层过不来$im2 = imagecreatetruecolor(imagesx($im1), imagesy($im1));$bg = imagecolorallocate($im2, 255, 255, 255);imagefill($im2, 0, 0, $bg);imagecopy($im2, $im1, 0, 0, 0, 0, imagesx($im1), imagesy($im1)); #设置水印字体颜色 $color = imagecolorallocatealpha($im2,0,0,0,100); #设置字体文件路径 $fontfile = "msyhbd.ttf";$fontfile = "c:/windows/fonts/FZJZJW.TTF"; #水印文字 $str = "我们都是好孩子";$str = iconv('gbk', 'utf-8', $str); #打水印 imagettftext($im2,20,20,20,100,$color,$fontfile,$str); imagettftext($im2,20,20,30,200,$color,$fontfile,$str); imagettftext($im2,20,20,40,300,$color,$fontfile,$str);imagepng($im2);

y坐标400不都跑到图片外去了吗?$url = 'http://img.bbs.csdn.net/upload/201310/29/1383042869_349074.png';$im1 = imagecreatefrompng($url);//这几行必须有,否则原图的阴影层过不来$im2 = imagecreatetruecolor(imagesx($im1), imagesy($im1));$bg = imagecolorallocate($im2, 255, 255, 255);imagefill($im2, 0, 0, $bg);imagecopy($im2, $im1, 0, 0, 0, 0, imagesx($im1), imagesy($im1)); #设置水印字体颜色 $color = imagecolorallocatealpha($im2,0,0,0,100); #设置字体文件路径 $fontfile = "msyhbd.ttf";$fontfile = "c:/windows/fonts/FZJZJW.TTF"; #水印文字 $str = "我们都是好孩子";$str = iconv('gbk', 'utf-8', $str); #打水印 imagettftext($im2,20,20,20,100,$color,$fontfile,$str); imagettftext($im2,20,20,30,200,$color,$fontfile,$str); imagettftext($im2,20,20,40,300,$color,$fontfile,$str);imagepng($im2);

貌似背景有边框了,不过还是谢谢了,我自己改了下,现在成功了,太感谢了!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值