PHP GD Text mit Transparenz/Alpha-hintergrund
okay also ich habe ein problem mit meiner text-formatierte über ein teilweise transparentes Bild. ich möchte den text solide, aber ich will ein Teil der hintergrund des Bildes transparent sein, und der Teil, der text ist über solide zu sein, was ich habe, das problem ist der text erbt, der transparente hintergrund einer der vorhergehenden Schichten. hier ist der code, und ein Beispiel für die Ausgabe, und unter der Ausgabe, was ich es Aussehen. das Bild ist die Verlegung auf einem hellgrauen hintergrund, so dass das Licht Rand um das Bild zwischen dem dunkleren Grau, ist transparent, aber nichts anderes sollte vor allem der text. es scheint nicht den text seiner selbst, aber der hintergrund des text-Blöcke, die transparent ist. die, wie Sie sehen können, ist nicht sehr wünschenswert. bitte helfen Sie, dies ist das einzige problem habe ich Links zu meinem Projekt. 🙂
nicht post Bilder noch, so heres ein link zu dem Bild des Beispiel-Ausgang und das gewünschte Ergebnis (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);
?>
Du musst angemeldet sein, um einen Kommentar abzugeben.
hah ich denke, dass ich nicht denke, dass Sie hart genug auf Sie. die Lösung war, um imagealphablending zurück auf vor der Verlegung der text auf das Bild.
imagecopyresampled()
- und dann wieder einschalten, bevor Sie text mitimagettftext()
zu halten, hintergrund transparent und vermeiden graue Rhomben um chars