Справочники, инструменты, документация

PHP: Добавить текст на изображение

Если у вас есть эксклюзивные изображения, вы стараетесь разместить свое имя в качестве символа того, что изображение принадлежит вам, но если у вас есть сотни или более изображений, добавление текста на каждое из изображений займет много времени.

Этот простой скрипт выполнит всю работу за вас, добавив текст в верхнюю часть изображения после открытия, и не изменит само изображение, поэтому вы можете изменить текст на изображении в любое время.

Пример вызова:

<img src="img.php?imgfile=image.jpg&text=YOURTEXTHERE">
// измените текст для наложения на изображения
// $text = 'mydomain.com';
// $imgfile="smp.jpg";
$font = 'arial.ttf';
$ext=substr($imgfile,-3);
$ext=strtolower($ext);

if($ext=="jpg" || $ext=="jpe") <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3c185551017c55515d5b595f4e595d48595a4e5351564c595b">[email protected]</a>("$imgfile");
elseif ($ext=="gif") <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="795d101444391014181e1c1a0b1c180d1c1f0b16141e101f">[email protected]</a>("$imgfile"); 
else {print "Unknown image format"; exit;}

 if (!$im) { /* See if it failed */
 $im = ImageCreate (150, 30); /* Create a blank image */
 $bgc = ImageColorAllocate ($im, 255, 255, 255);
 $tc = ImageColorAllocate ($im, 0, 0, 0);
 ImageFilledRectangle ($im, 0, 0, 150, 30, $bgc); 
 /* Output an errmsg */
 ImageString($im, 1, 5, 5, "Error loading $imgfile", $tc); 
 return $im;
 }

$x=imagesx($im);
$y=imagesy($im);
$fontsize=$x/20;
$fontsize=floor($fontsize);
if($fontsize<10) $fontsize=10;

$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

imagettftext($im, $fontsize, 0, 12, $fontsize+8, $black, $font, $text);
imagettftext($im, $fontsize, 0, 10, $fontsize+6, $white, $font, $text);

imagettftext($im, 10, 0, 12, $y-8, $white, $font, "Powered by SmallCapitalBusiness.com");
imagettftext($im, 10, 0, 10, $y-7, $black, $font, "Powered by SmallCapitalBusiness.com");
if($ext=="gif") 
 {
 header("Content-type: image/gif");
 imagegif($im);
 }
else
 {
 header("Content-type: image/jpeg");
 imagejpeg($im);

 }
imagedetroy($im);