Надпись на изображении (продолжение) PHP

14.11.2012 05:53 Администратор PHP
Печать

Так как последнее время я очень много работаю на php с графикой то я решил написанные функции выкладывать тут. Сегодня мне понадобилось сделать надпись на изображении, но с условием что изображение может иметь различное расширение (jpg, png, gif). Ранее я публиковал похожую статью, но она мне сейчас совершенно не подходила и наверное годилась только для ознакомления.

 Я Дописал функцию, добавил в нее автоопределение расширения (если можно так назвать), ну и переименовал ее так как прежнее ее название все же несколько некорректно (она называлась php_paint - рисовать php что ли).

Вообщем предоставляю более универсальную функцию:

function write_on_image($src, $txt, $size, $top, $left, $dest){
if (!file_exists($src)) return false;
$size_img = getimagesize($src);
$format = strtolower(substr($size_img['mime'], strpos($size_img['mime'], '/')+1));
$icfunc = "imagecreatefrom" . $format;
if (!function_exists($icfunc)) return false;
$im = $icfunc($src);
$font = 'tahoma.ttf';
$text_color = imagecolorallocate($im,0,0,0); // надпись делаем черным цветом указывается в RGB
imagettftext($im, $size, 0, $left, $top, $text_color, $font, $txt); 
imageJpeg($im, $dest, 100);
}

 Так же функцию можно еще доработать и тогда можно будет передавать ей название шрифта и цвет в таком случае функцию можно будет считать универсальной для добавления надписи на изображение. В данном случае мне этого ненужно было. Шрифт мне нужен был один, и цвет тоже.

Хочу так же отметить что переменная $font это не название шрифта, а путь до него.

Думаю передаваемые параметры понятны и в объяснении не нуждаются, хотя нет, все же добавлю пример использования функции.

write_on_image("1.jpg", "Текст надписи", "20", "10", "10", "1z.jpg");

 Данный пример пишет на изображении 1.jpg текст "Текст надписи" шрифтом с размером 20 по кординатам x = 10, y = 10 и сохраняет результат в файл 1z.jpg.

Сообственно все!