Уменбшение фоток через PHP, как?

12 3
Yurecm
На сайте с 25.02.2007
Offline
233
1182

Приветствую Коллеги :)

Делаю скрипт фотогалереи, все пучком, только вот не знаю как из больших фоток автоматом мелкие делать, скажем так, уменьшать их до следующих параметро: высота 150 пикселей, а ширина пропорционально считается.

Надеюсь понятно выразился.

Есть у кого нить подобный скрипт? или где нить скачать можно имено это? иль может пишется за две минуты, тогда жду в личку?

Заранее благодарю) :)

DU
На сайте с 20.10.2006
Offline
105
#1
C
На сайте с 20.09.2007
Offline
114
#2

$img_url = 'http://www.siteurl.ru/my_img.jpg'; // адрес изображения
$img_url_out = 'images/my_new_img.jpg'; // куда сохранять
---
$w = 150; // Ширина изображения
$src = imagecreatefromjpeg($img_url);
$w_src = imagesx($src); // Определяем ширину изображения
$h_src = imagesy($src); // Определяем длину изображения

// вычисление пропорций
$ratio = $w_src/$w;
$w_dest = round($w_src/$ratio);
$h_dest = round($h_src/$ratio);

// создаём пустую картинку
$dest = imagecreatetruecolor($w_dest,$h_dest);

imagecopyresampled($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
// header("Content-Type:image/jpeg", true);
imagejpeg($dest); // Выводим в браузер
imagejpeg($dest, "$img_url_out", 90); // Сохраняем
imagedestroy($dest);
imagedestroy($src);
ИМХО, самые лучшие VDS: https://cp.inferno.name/aff.php?aff=4048
Yurecm
На сайте с 25.02.2007
Offline
233
#3

DIMON-UA, спасибо, но того что мне надо я там не нашел.

Yurecm добавил 21.08.2008 в 02:30

censored!, фантастика, спасибо друзья)

А такая операци нагрузку сильную вообще на сервер делает?

СД
На сайте с 17.02.2008
Offline
20
#4
Yurecm:
DIMON-UA, спасибо, но того что мне надо я там не нашел.

Yurecm добавил 21.08.2008 в 02:30
censored!, фантастика, спасибо друзья)

А такая операци нагрузку сильную вообще на сервер делает?

хм.. советы конечно хороши но поверхносны, появится проблема - загружаемые фотки могут быть разного размера (соотношение сторон) то есть если фотки: 1000x800 и 1200x800 уменьшить то превьюшки получатся разного размера (что в принципе логично) но как правило надо выводить превьюшки одного размера, во первых это эстетично во вторых это более правильно сточки зрения валидности (width, height)

поэтому задачу лучше решить таким путем: уменьшаем фото, далее создаем картинку фикс. размера и на эту картинку накладываем фото, в итоге получаем превьюшки одинакового размера)

Деньги ... легко. () я плохой ребенак, люблю пиво и ненавижу даунов оставил хамский коммент и не подписался? Мог бы и не трудиться, на уродов не в обиде)
malls
На сайте с 08.08.2005
Offline
255
#5
СиДжей:
появится проблема - загружаемые фотки могут быть разного размера (соотношение сторон)

Фигня - достаточно соблюсти например ширину (зависит от дизайна)

Одна трабла - путь который предложил censored! прост, но возникнут другого плана проблемы - превьюшки будут "кривоваты" в цветах. Некоторые будут ничего, а некоторые нет.

Есть вроде библиотека какая-то PEAR - которая корректнее это делает.

Yurecm
На сайте с 25.02.2007
Offline
233
#6
malls:
Одна трабла - путь который предложил censored! прост, но возникнут другого плана проблемы - превьюшки будут "кривоваты" в цветах. Некоторые будут ничего, а некоторые нет.
Есть вроде библиотека какая-то PEAR - которая корректнее это делает.

пока все нормально)

C
На сайте с 20.09.2007
Offline
114
#7
будут "кривоваты" в цветах

Для этого: imagecreatetruecolor

И плюс к этому уменьшение через imagecopyresampled (чтобы со сглаживанием)

загружаемые фотки могут быть разного размера

Все зависит от дизайна (как фотки расположены).

А так - обычно по ширине, а высота плавает.

По валидности - лучше указывать и ширину и высоту, но ширина более критична, т.к. при отображении страницы будет виден "прыжок" окружающего контента в сторону, а высоту меньше видно, т.к. сразу мало кто резко начинает скролить.

далее создаем картинку фикс. размера и на эту картинку накладываем фото, в итоге получаем превьюшки одинакового размера

Как вариант, можно, конечно, фиксировано, только вы же не знаете какую часть кадрировать. Левую или правую сторону выкинуть?

[Удален]
#8
censored!:
Все зависит от дизайна (как фотки расположены).

Грандреспект за скрипт! Мне бы так знать php...

А превьюшки можно раскидать по ячейкам таблицы с фиксированными размерами ячеек. Будет смотреться гораздо лучше, чем с деформацией пропорций.

СД
На сайте с 17.02.2008
Offline
20
#9
censored!:
Для этого: imagecreatetruecolor
Как вариант, можно, конечно, фиксировано, только вы же не знаете какую часть кадрировать. Левую или правую сторону выкинуть?

я обычно высчитываю середину, отступы одинаковы делаю со всех сторон. как правило обрезка идет пикселей 10-15..

Yurecm
На сайте с 25.02.2007
Offline
233
#10
СиДжей:
я обычно высчитываю середину, отступы одинаковы делаю со всех сторон. как правило обрезка идет пикселей 10-15..

выложите тогда скрипт плиз.

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий