How to give border to text in PHP GD library
Use following function to add border to text
You can check the example output here http://wmh.github.io/hunbook/examples/gd-imagettftext.html
function imagettfstroketext(&$image, $size, $angle, $x, $y, &$textcolor, &$strokecolor, $fontfile, $text, $px) { for($c1 = ($x-abs($px)); $c1 <= ($x+abs($px)); $c1++) for($c2 = ($y-abs($px)); $c2 <= ($y+abs($px)); $c2++) $bg = imagettftext($image, $size, $angle, $c1, $c2, $strokecolor, $fontfile, $text); return imagettftext($image, $size, $angle, $x, $y, $textcolor, $fontfile, $text);}
You can use stil/gd-text
class library. Code example:
<?phprequire __DIR__.'/../vendor/autoload.php';use GDText\Box;use GDText\Color;$im = imagecreatetruecolor(500, 500);$backgroundColor = imagecolorallocate($im, 0, 18, 64);imagefill($im, 0, 0, $backgroundColor);$box = new Box($im);$box->setFontFace(__DIR__.'/Elevant bold.ttf'); // http://www.dafont.com/elevant-by-pelash.font$box->setFontSize(150);$box->setFontColor(new Color(255, 255, 255));$box->setBox(20, 20, 460, 460);$box->setTextAlign('center', 'center');$box->setStrokeColor(new Color(255, 75, 140)); // Set stroke color$box->setStrokeSize(3); // Stroke size in pixels$box->draw("Elevant"); // Text to drawheader("Content-type: image/png;");imagepng($im, null, 9, PNG_ALL_FILTERS);
Demonstration:
// http://www.johnciacia.com/2010/01/04/using-php-and-gd-to-add-border-to-text/ function imagettfstroketext(&$image, $size, $angle, $x, $y, &$textcolor, &$strokecolor, $fontfile, $text, $px) {for($c1 = ($x-abs($px)); $c1 <= ($x+abs($px)); $c1++) for($c2 = ($y-abs($px)); $c2 <= ($y+abs($px)); $c2++) $bg = imagettftext($image, $size, $angle, $c1, $c2, $strokecolor, $fontfile, $text); return imagettftext($image, $size, $angle, $x, $y, $textcolor, $fontfile, $text);}$font_color = imagecolorallocate($im, 255, 255, 255);$stroke_color = imagecolorallocate($im, 0, 0, 0);imagettfstroketext($im, 60, 10, 300, 130, $font_color, $stroke_color, "wqy- microhei.ttc", "简体繁體", 2);