How to give border to text in PHP GD library How to give border to text in PHP GD library php php

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:

demo


// 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);