Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Изменение размеров изображения и создание превью
Форумы портала PHP.SU » » Графика в PHP » Изменение размеров изображения и создание превью

Страниц (1): [1]
 

1. Schupp - 14 Августа, 2011 - 03:47:17 - перейти к сообщению
Честно говоря, просто запутался. Надо сделать функцию, которая:

1. Получает имя изображения и проверяет, не больше ли оно по любой из сторон 800 пикселей. Если больше, то пропорционально уменьшает его так, что длинная сторона была 800. Соответственно имя нового изображения получает суффикс "-g".

2. Если обе стороны меньше, то проверяет, чтоб длинная сторона была больше 200 пикселей. Если обе стороны меньше - то к имени исходного изображения добавить "-g" и создать копию, к имени которой добавить "-k".

3. Если был выполнен первый пункт или во втором пункте выяснилось, что размеры лежат между 800 и 200, то создается превью с размером длинной стороны 200 пикселей. Превью получает имя исходного изображения, но с добавкой в конце "-k".

4. Функция должна корректно работать с изображениями форматов jpg, gif и png.

5. Исходное изображение должно по окончанию работы удаляться вообще, чтоб не занимать место. Само собой, все картинки лежат в одной папке, там же должны создаваться и все новые изображения.

Т.е. в итоге должно получиться следующее:
если исходное изображение имеет имя name.jpg, то после работы функции это изображение должно быть удалено, а в той же папке должны появиться два изображения с именами name-g.jpg и name-k.jpg (от немецкого gross и klein, большое и маленькое). Большое должно быть размером не более 800 пикселей по длинной стороне, маленькое - 200. Вообще-то замечание о том, что исходное изображение может быть меньше 200 пикселей по длинной стороне - нереальность, но как защита от дурака должно быть по идее предусмотрено.

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

Очень прошу помочь специалистов. Очень. Заранее благодарен.

 

Powered by ExBB FM 1.0 RC1