У меня есть функция ниже, и я получил его до нужного размера, теперь я добавляю фоновое изображение, а затем хочу добавить только текстовое наложение с прозрачным фоном на весь текст наложения, но imagefilledrectangle
применяет переменную $white
что, как ожидается, я пытаюсь увидеть, есть ли в любом случае сказать, что функция должна быть прозрачной, вместо того, чтобы принимать цвет, белый в этом случае, документы PHP говорят, что цвет является обязательным параметром для imagefilledrectangle
Любые предложения с благодарностью.
Фоновое изображение является локальным изображением:
define("BACKGROUND_FILE", "background.png");
Функция:
public function generateImage()
{
if (file_exists(BACKGROUND_FILE)) {
$im = @imagecreatefrompng(BACKGROUND_FILE);
if($im) {
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 115, 150, 195);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
$text = 'Test';
$font = 'arial_narrow_7.ttf';
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
imagepng($im);
imagedestroy($im);
} else {
echo 'Error';
}
}
}
Я пытался добавить imagecolortransparent($im, $white);
до imagefilledrectangle
но это не имело никакого значения.
Разобрался, нет необходимости иметь imagefilledrectangle
строка в функции, ниже дает прозрачные текстовые элементы наложения, так как теперь заливка не применяется.
public function generateImage()
{
if (file_exists(BACKGROUND_FILE)) {
$im = @imagecreatefrompng(BACKGROUND_FILE);
if($im) {
$black = imagecolorallocate($im, 115, 150, 195);
$text = 'Test';
$font = 'arial_narrow_7.ttf';
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
imagepng($im);
imagedestroy($im);
} else {
echo 'Error';
}
}
}
Других решений пока нет …