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

來源:互聯網
上載者:User
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);


貌似背景有邊框了,不過還是謝謝了,我自己改了下,現在成功了,太感謝了!
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.