В предыдущей статье я показывал, как можно написать текст на картинке. И недавно я столкнулся с проблемой, нужно было нанести текст с обводкой. То есть белый текст с черной окантовкой(обводкой). Стандартного решения в пхп нет, пришлось импровизировать, возможно это не самый рациональный способ, но он работает.
Вот исходник
<?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); ?>