diff --git a/ground/classes/Image.php b/ground/classes/Image.php index aacf0a8..7377bb3 100644 --- a/ground/classes/Image.php +++ b/ground/classes/Image.php @@ -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); diff --git a/ground/config_template.php b/ground/config_template.php index 133b7c6..93af114 100644 --- a/ground/config_template.php +++ b/ground/config_template.php @@ -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, diff --git a/ground/watermarks/big.png b/ground/watermarks/big.png new file mode 100644 index 0000000..0ccb558 Binary files /dev/null and b/ground/watermarks/big.png differ diff --git a/ground/watermarks/middle.png b/ground/watermarks/middle.png new file mode 100644 index 0000000..ff8ce56 Binary files /dev/null and b/ground/watermarks/middle.png differ