7
好吧,我的文本覆蓋在部分透明的圖像上有問題。我希望文字是堅實的,但我希望圖像的背景的一部分是透明的,文字結束的部分要堅實,我有,問題是文字是繼承透明背景之一的之前的圖層。這裏是代碼,以及輸出的例子,並且在那個輸出下我想要它的樣子。圖像鋪設在淺灰色的背景上,因此在較暗的灰色之間圖像周圍的光線邊緣是透明的,但沒有其他特別應該是文字。它似乎不是自己的文本,而是透明的文本塊的背景。正如你所看到的,這不是很理想。請幫助,這是我留下來完成我的項目的唯一問題。 :)帶有透明度/ Alpha背景的PHP GD文本
不能發表圖片呢,所以繼承人的鏈接,例如輸出的圖像和期望的結果(orig):
<?php
$img = imagecreatetruecolor(200, 50);
$imageX = imagesx($img);
$imageY = imagesy($img);
imagealphablending($img, false);
imagesavealpha($img, true);
$transparent = imagecolorallocatealpha($img, 255,255,255, 127);
$white = imagecolorallocate($img, 255,255,255);
$grey = imagecolorallocate($img, 127,127,127);
imagefilledrectangle($img, 0, 0, $imageX, $imageY, $grey);
imagefilledrectangle($img, 2, 2, $imageX-4, $imageY-4, $transparent);
$font = "./arialbd.ttf";
$fontSize = 12;
$text = "THIS IS A TEST";
$textDim = imagettfbbox($fontSize, 0, $font, $text);
$textX = $textDim[2] - $textDim[0];
$textY = $textDim[7] - $textDim[1];
$text_posX = ($imageX/2) - ($textX/2);
$text_posY = ($imageY/2) - ($textY/2);
imagefilledrectangle($img, 10, 10, $imageX-10, $imageY-10, $grey);
imagettftext($img, $fontSize, 0, $text_posX, $text_posY, $white, $font, $text);
header("Content-Type: image/png");
imagepng($img);
?>
其實我有類似的問題,在添加文本之前變成alphablending就像魅力一樣!謝謝! – ikhsan 2013-11-06 11:46:46
是的,我不得不在關閉imagecopyresampled()調整大小之前關閉它,然後在將文本與imagettftext()放在一起以保持背景透明並避免字符周圍出現灰色菱形 – vladkras 2014-01-23 14:11:31