Уменьшение и обрезание картинок на PHP. Добавление текста любым шрифтом

Итак, в этом материале мы поговорим о том как взаиможействовать с картинками на языке PHP. Мы раскроем такие темы: Как изменять размер картинки на PHP, Как создавать картинки, Как обрезать картинки на PHP, Как добавлять текст на картинку?

Как обрезать картинку на PHP?

Здесь не будет лишней словесной чепухи, перейдём сразу к делу.

Для обрезания картинок необходимо воспользоваться функцией:

imagecopyresampled($img_dst, $img_src, $a, $b, $c, $d, $e, $f,$im_src_w,$im_src_h);

где

$img_dst - Выходящее из функции изображение (То которое вы получите)

$img_src - Входящее в функцию изображение (Исходное изображение - оригинал)

$a -  Левая верхняя точка откуда начнётся заполнение изображения $img_dst (Значения по координате X) Обычно равна нулю.

$b - Левая верхняя точка откуда начнётся заполнение изображения $img_dst (Значения по координате Y) Обычно равна нулю.

$c - Сдвиг изображения по координате X (Для обрезания)

$d - Сдвиг изображения по координате Y (Для обрезания)

$e - Ширина с которой будет записываться в $img_dst исходное изображение $img_src

$f - Длина с которой будет записываться в $img_dst исходное изображение $img_src

$im_w - Ширина с которой входит в функцию исходное изображение (Обычно равна ширине исходной картинке)

$im_h - Длина с которой входит в функцию исходное изображение (Обычно равна длине исходной картинке)

Применение:

Например мы знаем, что высота pict.jpg равна 1000px, а ширина 500px и хотим сохранить в изображение resized.jpg лишь часть размером 200 по высоте и 300 по ширине, с отступом от верха в 125 пикселей.

$img1_src=@imagecreatefromjpeg('pict.jpg');
$img1_dst=imagecreatetruecolor (300,200); //Создаём изображение с нуля с разрешением(ДЕФОЛТНО ЧЁРНЫЙ ФОН)
$im_src_w=imagesx($img1_src); //узнаём ширину исходного изображения
$im_src_h=imagesy($img1_src); //узнаём высоту исходного изображения
imagecopyresampled($img1_dst, $img1_src, 0, 0, 0, 125, 500, 1000,$im_src_w,$im_src_h); //Функция с параметрами
imagejpeg($img1_dst,'abc/resized.jpg'); //Сохраняем изображение
imagedestroy($img1_dst); //Освобождаем память
imagedestroy($img1_src); //Освобождаем память

Всё, на выходе мы получаем файл resized.jpg в папке abc, который получился желаемых параметров.

Необходимо обратить ваше внимание на то, что для записи файла необходимо чтобы права папки abc были 777.

Как уменьшить картинку на PHP?

Для того чтобы уменьшить изображение на PHP необходимо воспользоваться функцией, пример использования которой приводился выше. Для того чтобы уменьшите изображение размером 1000x500 до 500x250, необходимо использовать следующую настройку функции:

imagecopyresampled($img1_dst, $img1_src, 0, 0, 0, 0, 250, 500,$im_src_w,$im_src_h);

 

Как добавлять текст на картинку в PHP?

Например если мы захотели добавить на картинку текст "Привет, мир!" шрифтом 943658.ttf, нужно воспользоваться функцией imagettftext.

Для подобной задачи есть другая функция, но так которая в примере более лучше. Именно с этой функцией вы сможете делать надписи на картинках на PHP в любом размере шрифта.

Пример рабочего кода:

$img1_src=@imagecreatefromjpeg('pict-1.jpg'); // Создаём в памяти изображение на основе файла
$black = imagecolorallocatealpha ($img1_dst, 240, 240, 240, 70);
imagettftext ($img1_dst, 20, 10, 12, 180, $black, "943658.ttf", "Привет мир");
imagejpeg($img1_src,'abc/pict-1.jpg');
imagedestroy($img1_src);


You have no rights to post comments

Карта сайта