PHP GD 2x ресайз |
Задача:
1. Взять изображение N-размера.
2. Cоздать к большому изображение маленькую пропорциональную превьюшку.
3. Наложить на большое изображение(изначального размера), логотип формата PNG 24bit
4. Сохранить 2 изображения в формате JPEG: 1. SMALL(100x100) 2. BIG(STANDART SIZE)+LOGO
Нам потребуется: большая картинка(на ваш вкус и цвет), логотип или что-то подобное в формате PNG 24bit, Редактор и минимально терпения =).
$filename = ""; $filename_logo = ""; |
// header('Content-type: image/jpeg'); |
$info_img = getimagesize($filename); |
list($width, $height) = $info_img; |
$small_size = 100; |
if($width > $height) { $s_width = $small_size; $s_height = $small_size*($height/$width); } if($width < $height) { $s_width = $small_size*($width/$height); $s_height = $small_size; } if($width == $height) { $s_width = $small_size; $s_height = $small_size; } |
$small_image = imagecreatetruecolor($s_width, $s_height); $big_image = imagecreatetruecolor($width, $height); |
if($info_img['mime'] == 'image/gif') { $image = imagecreatefromgif($filename); } if($info_img['mime'] == 'image/jpeg') { $image = imagecreatefromjpeg($filename); } if($info_img['mime'] == 'image/png') { $image = imagecreatefrompng($filename); } |
imagecopyresampled($small_image, $image, 0, 0, 0, 0, $s_width, $s_height, $width, $height); imagecopyresampled($big_image, $image, 0, 0, 0, 0, $width, $height, $width, $height); |
imagealphablending($image, true); $logo_image = imagecreatefrompng($filename_logo); $logo_width = ImageSX($logo_image); $logo_height = ImageSY($logo_image); imagecopy($big_image, $logo_image, $width-($logo_width+10), $height-($logo_height+10), 0, 0, $logo_width, $logo_height); |
imagejpeg($small_image, "picture/small_picture.jpg";, 80); imagejpeg($big_image, "picture/big_picture.jpg", 80); |
<?php $filename = ""; // путь до картинки $filename_logo = ""; // путь до логотипа PNG $small_size = 100; // максимальный размер превьюшки $info_img = getimagesize($filename); // собераем информацию изображения list($width, $height) = $info_img; // определяем пропорции if($width > $height) { $s_width = $small_size; $s_height = $small_size*($height/$width); } if($width < $height) { $s_width = $small_size*($width/$height); $s_height = $small_size; } if($width == $height) { $s_width = $small_size; $s_height = $small_size; } $small_image = imagecreatetruecolor($s_width, $s_height); $big_image = imagecreatetruecolor($width, $height); // определяем тип изображения if($info_img['mime'] == 'image/gif') { $image = imagecreatefromgif($filename); } if($info_img['mime'] == 'image/jpeg') { $image = imagecreatefromjpeg($filename); } if($info_img['mime'] == 'image/png') { $image = imagecreatefrompng($filename); } imagecopyresampled($small_image, $image, 0, 0, 0, 0, $s_width, $s_height, $width, $height); imagecopyresampled($big_image, $image, 0, 0, 0, 0, $width, $height, $width, $height); // накладываем лого на большое изображение imagealphablending($image, true); $logo_image = imagecreatefrompng($filename_logo); $logo_width = ImageSX($logo_image); $logo_height = ImageSY($logo_image); imagecopy($big_image, $logo_image, $width-($logo_width+10), $height-($logo_height+10), 0, 0, $logo_width, $logo_height); // сохраняем 2 изображения imagejpeg($small_image, "picture/small_picture.jpg", 80); imagejpeg($big_image, "picture/big_picture.jpg", 80); ?> |
Рубрики: | Склад готовых решений |
Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |
Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |