Добавление watermark на картинку при ресайзе
This commit is contained in:
parent
0e178f19b2
commit
341cacc844
|
|
@ -36,15 +36,18 @@ class Image
|
|||
$sizes = App::getConfig('images');
|
||||
$pathInfo = pathinfo($_SERVER['SCRIPT_FILENAME']);
|
||||
$uploaddir = $pathInfo['dirname'] . '/photos/';
|
||||
$watermarkDir = App::getBasedir().'watermarks/';
|
||||
|
||||
foreach ($sizes as $dir => $size)
|
||||
{
|
||||
$watermark = isset($size[3])?$watermarkDir.$size[3]:'';
|
||||
self::imgResize(
|
||||
$uploaddir . $imgName, // Source - original image
|
||||
$uploaddir . $dir . '/' . $imgName, // Destination
|
||||
$size[0], // X
|
||||
$size[1], // Y
|
||||
$size[2] // Quelity
|
||||
$size[2], // Quality
|
||||
$watermark// Watermark
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -60,7 +63,7 @@ class Image
|
|||
* Необязательные параметры:
|
||||
* $quality - качество генерируемого JPEG, по умолчанию 90; максимальное 100;
|
||||
*/
|
||||
private static function imgResize($src, $dest, $width, $height, $quality = 90)
|
||||
private static function imgResize($src, $dest, $width, $height, $quality = 90, $watermark = '')
|
||||
{
|
||||
if (!file_exists($src))
|
||||
return false;
|
||||
|
|
@ -95,6 +98,17 @@ class Image
|
|||
imagefill($idest, 0, 0, 0xFFFFFF);
|
||||
imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0, $new_width, $new_height, $size[0], $size[1]);
|
||||
|
||||
if ($watermark)
|
||||
{
|
||||
$stamp = imagecreatefrompng($watermark);
|
||||
|
||||
$marge_right = 10;
|
||||
$marge_bottom = 2;
|
||||
$sx = imagesx($stamp);
|
||||
$sy = imagesy($stamp);
|
||||
|
||||
imagecopy($idest, $stamp, imagesx($idest) - $sx - $marge_right, imagesy($idest) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));
|
||||
}
|
||||
//$iofunct = "image".$format;
|
||||
//$iofunct($idest, $dest, $quality);
|
||||
imagejpeg($idest, $dest, $quality);
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ return array(
|
|||
'images' => array(
|
||||
// 'dirName' => array(maxX, maxY, quality),
|
||||
'small' => array(200, 150, 100),
|
||||
'middle' => array(555, 450, 90),
|
||||
'big' => array(1110, 900, 90),
|
||||
'middle' => array(555, 450, 90, 'middle.png'),
|
||||
'big' => array(1110, 900, 90, 'big.png'),
|
||||
),
|
||||
//'version' => trim(file_get_contents(dirname(__FILE__).'/version')),
|
||||
'metrika' => true,
|
||||
|
|
|
|||
Binary file not shown.
|
After Width: | Height: | Size: 8.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
Loading…
Reference in New Issue