Водные знаки для картинок

Наложим сразу несколько картинок поверх основной.

<?php
// исходное изображение
$base_img="car.jpg";


// imagecreatetruecolor - создаёт новое изображение true color
// $result_image=imagecreatetruecolor($baseWidth, $baseHeight);

// выясняем расширение изображения на которое будем накладывать водяной знак
if(preg_match("/.gif/i",$base_img)):
	$result_image=imagecreatefromgif($base_img);
elseif(preg_match("/.jpeg/i",$base_img) or preg_match("/.jpg/i",$base_img)):
	$result_image=imagecreatefromjpeg($base_img);
elseif(preg_match("/.png/i",$base_img)):
	$result_image=imagecreatefrompng($base_img);
else:
	die("Ошибка! Неизвестное расширение изображения");
endif;
// узнаем размер изображения
// imagesx - получает ширину изображения
// imagesy - получает высоту изображения
$baseWidth=imagesx($result_image);
$baseHeight=imagesy($result_image);
// $size=getimagesize($base_img);

// указываем координаты, где будет располагаться водяной знак
/*
* $size[0] - ширина изображения
* $size[1] - высота изображения
* - 10 -это расстояние от границы исходного изображения
*/
// $cx=$size[0]-$baseWidth-10;
// $cy=$size[1]-$baseHeight-10;
$cx=0;
$cy=0;

/* imagecopyresampled - копирует и изменяет размеры части изображения
* с пересэмплированием
*/

$arr_of_waters = ['img/fari.png', 'img/nomer.png'];
// imagecreatefrompng - создаёт новое изображение из файла или URL
// водяной знак
// 
foreach ($arr_of_waters as $key => $value) {
	$info = pathinfo($value);
	$imgs_water[] = $info['filename'];

	$water=imagecreatefrompng($value);
	imagecopyresampled ($result_image, $water, $cx, $cy, 0, 0, $baseWidth, $baseHeight, $baseWidth, $baseHeight);
	imagedestroy($water);
}

/* imagejpeg - создаёт JPEG-файл filename из изображения image
* третий параметр - качество нового изображение 
* параметр является необязательным и имеет диапазон значений 
* от 0 (наихудшее качество, наименьший файл)
* до 100 (наилучшее качество, наибольший файл)
* По умолчанию используется значение по умолчанию IJG quality (около 75)
*/
$base_img_new = pathinfo($base_img)['filename'].$baseWidth.'_'.$baseHeight.implode('', $imgs_water).'.jpg';
if(file_exists($base_img_new)){
	echo "exist!";
	echo $base_img_new;
	return;
}
imagejpeg($result_image,$base_img_new,100);

// imagedestroy - освобождает память
imagedestroy($result_image);


// на всякий случай
// unset($result_image,$base_img);

Leave a comment

Your email address will not be published.


*