Текст PHP GD с фоном Прозрачности/Альфы

хорошо, таким образом, у меня есть проблема с получением моего текста, положенного по частично прозрачному изображению. я хочу, чтобы текст был основательным, но я хочу, чтобы часть фона изображения была прозрачна, и часть, текст закончен для тела, который я имею, проблемой является текст, наследовал прозрачный фон одного из предыдущих слоев. вот код и пример вывода, и под тем выводом, на что я хочу, чтобы он был похож. изображение кладет на светло-сером фоне так светлая граница вокруг изображения, промежуточного, более темно-серый прозрачен, но ничто иное не должно быть особенно текстом. это, кажется, не текст сам, но фон текстовых блоков, который прозрачен. который, как Вы видите, не очень желателен. помогите, это - единственная проблема, которую я оставил для завершения моего проекта.:)

еще не может отправить изображения, таким образом, вот ссылка на изображение вывода в качестве примера и желаемого результата (orig):

enter image description here


7
задан hakre 3 September 2013 в 06:48
поделиться

1 ответ

Хаджа, я думаю, я не думал достаточно сложно на этом. Раствор должен был включить IMAGEAELPHABLEDAND назад, прежде чем укладывать текст на изображение.

<?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);
imagealphablending($img, true);
imagettftext($img, $fontSize, 0, $text_posX, $text_posY, $white, $font, $text);

header("Content-Type: image/png");
imagepng($img);

?>
19
ответ дан 6 December 2019 в 10:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: