[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: создание доп фото при загрузке его на сервер
maxsim1982i
Подскажите как реализовать при загрузке фото на сервер создание дополнительного фото меньших размеров для демонстрации его на сайте



Спустя 1 час, 47 минут, 8 секунд (15.12.2009 - 11:41) sergeiss написал(а):

Спустя 3 часа, 28 минут, 38 секунд (15.12.2009 - 15:09) pultter написал(а):
вот... осталось только добавить upload и сохранение полученного изображения в файл
<?php Error_Reporting(E_ALL & ~E_NOTICE);

/*
f - имя файла
t - способ масштабирования
q - качество сжатия
s - исходное изображение
d - результирующее изображение
w - ширниа изображения
*/

// имя файла

$f = "1.jpg";

// тип преобразования
$t = 2;
// конечное изображение
$d = "<img src=\"02.jpg\">";

// определяем тип, переданный ранее и задаем переменной $w значение
if ($t == 0) {
$w = 70;
}
if ($t == 1) {
$w = 90;
}
if ($t == 2) {
$w = 240;
}

// качество jpeg по умолчанию
if (!isset($q)) {
$q = 100;
}

// создаём исходное изображение
$s = imagecreatefromjpeg($f);
// определяем координаты картинки
$ws = imagesx($s);
$hs = imagesy($s);

// не знаю что это, но без него не работает
header("Content-type: image/jpeg");

// операции для получения квадратного файла
if (($t==0)||($t==1)) {
// создаём пустую квадратную картинку
$d = imagecreatetruecolor($w,$w);
// вырезаем квадратную серединку по x, если фото горизонтальное
if ($ws>$hs) {
imagecopyresized($d, $s, 0, 0,
round((max($ws,$hs)-min($ws,$hs))/2),
0, $w, $w, min($ws,$hs), min($ws,$hs));
}
// вырезаем квадратную верхушку по y
if ($ws<$hs) {
imagecopyresized($d, $s, 0, 0, 0, 0, $w, $w,
min($ws,$hs), min($ws,$hs));
}
// квадратная картинка масштабируется без вырезок
if ($ws==$hs) {
imagecopyresized($d, $s, 0, 0, 0, 0, $w, $w, $ws, $ws);
}
}

// операции для получения прямоугольного файла
if ($t==2) {
// вычисление пропорций
$r = $ws/$w;
$wd = round($ws/$r);
$hd = round($hs/$r);
// создаём пустую картинку
$d = imagecreatetruecolor($wd,$hd);
// копируем и масштабируем
imagecopyresized($d, $s, 0, 0, 0, 0, $wd, $hd, $ws, $hs);
}


// вывод картинки
imagejpeg($d,'',$q);
// удаляем все
imagedestroy($d);
imagedestroy($s);


?>


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.