How to provide a border for text in the PHP GD library

How can I provide a border with text using the PHP GD library with colorful text, where the color of the text is different from the color of the frame.

As you can call:

enter image description here

+5
source share
3 answers
// 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); 
0
source

Use the following function to add a border to the text.

You can check the output here here http://wmh.imtqy.com/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); } 
+10
source

You can use the stil/gd-text class library. Code example:

 <?php require __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 draw header("Content-type: image/png;"); imagepng($im, null, 9, PNG_ALL_FILTERS); 

Demonstration:

demo

+4
source

Source: https://habr.com/ru/post/1206785/


All Articles