Нанесение на картинку текста с обводкой

Нанесение на картинку текста с обводкой
В предыдущей статье я показывал, как можно написать текст на картинке. И недавно я столкнулся с проблемой, нужно было нанести текст с обводкой. То есть белый текст с черной окантовкой(обводкой). Стандартного решения в пхп нет, пришлось импровизировать, возможно это не самый рациональный способ, но он работает.

Вот исходник

<?php
	$fontName = "impact.ttf"; // путь к шрифту
	$fontSise = 48; // размер шрифта
	$im = imageCreateFromJpeg("pic.jpg"); // картинка-фон
	$padLeft = 10; // отступ слева
	$padTop = $fontSise+30; // отступ справа
	$text = "Текст кир\nиллица"; // текст, который будем наносить на картинку
	$textColor = 0xFFFFFF; // цвет шрифта
	$obvodkaColor = 0x000000; // цвет обводки
	// обводка текста
	imagettftext($im, $fontSise, 0, $padLeft+2, $padTop, $obvodkaColor, $fontName, $text);
	imagettftext($im, $fontSise, 0, $padLeft-2, $padTop, $obvodkaColor, $fontName, $text);
	imagettftext($im, $fontSise, 0, $padLeft, $padTop+2, $obvodkaColor, $fontName, $text);
	imagettftext($im, $fontSise, 0, $padLeft, $padTop-2, $obvodkaColor, $fontName, $text);
	imagettftext($im, $fontSise, 0, $padLeft+1, $padTop+1, $obvodkaColor, $fontName, $text);
	imagettftext($im, $fontSise, 0, $padLeft+1, $padTop-1, $obvodkaColor, $fontName, $text);
	imagettftext($im, $fontSise, 0, $padLeft-1, $padTop-1, $obvodkaColor, $fontName, $text);
	imagettftext($im, $fontSise, 0, $padLeft-1, $padTop+1, $obvodkaColor, $fontName, $text);
	// вывод текста
	imagettftext($im, $fontSise, 0, $padLeft, $padTop, $textColor, $fontName, $text);
	// выводим картинку в браузере
	Header("Content-type: image/png");
	imagePng($im);
	
	// или сохраняем картинку
	//$path = 'C:/testPNG.png';
	//imagePng($im, $path);
	// В конце освобождаем память, занятую картинкой.
	imageDestroy($im);
?>
Рассказать друзьям:


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*