Приватный проект для Pro_PHP
Требуется написать алгоритм ресайза изображений.
Чтобы при добавлении изображения на сайт оно пилилось на указанные размеры с сохранением пропорций (например 295x164, 640x480).
Также требуется его оптимизация (допускается незначительная потеря качетсва).
Входящие настройки:
- обрезать пропорционально или нет, если да то задаём только ширину, если нет то задаём ширину и высоту;
- Размер превью изображения;
- размер полного изображения;
- максимальный размер файла изображения;
На выходе:
- 2 изображения + возможность выбора, удалять или не удалять оригинал фото.
Требуется только хорошо закоментированный алгоритм, интегрируем сами.
Желательно в виде класса, если это можно сделать лишь средствами php.
Цель:
-примерно следующее пишет сервис гугла
Размер следующих изображений изменяется в HTML или CSS. Предоставление изображения с нужными пропорциями позволит уменьшить его размер на 1,4Мб (на 78 %).
Размер http://.....info/.../file-1334800736.jpg изменяется в HTML или CSS с 1 072x712 до 295x164. Предоставление изображения с правильными пропорциями поможет уменьшить его размер на 807,3Кб (на 93 %).
Размер http:// ......info/.../file-1333667736.jpg изменяется в HTML или CSS с 860x480 до 295x164. Предоставление изображения с правильными пропорциями поможет уменьшить его размер на 118,1Кб (на 88 %).
Размер http:// ......info/.../file-1341902343.jpg изменяется в HTML или CSS с 338x500 до 284x140. Предоставление изображения с правильными пропорциями поможет уменьшить его размер на 117,5Кб (на 76 %).
Оптимизация поможет уменьшить размер следующих изображений на 114,8Кб (на 6 %).
Сжатие http:// ......info/.../file-1333669146.jpg без потери качества позволит уменьшить размер на 18Кб (на 17 %).
Сжатие http:// ......info/.../file-1334800736.jpg без потери качества позволит уменьшить размер на 12,5Кб (на 2 %).
Сжатие http:// ......info/.../file-1341902343.jpg без потери качества позволит уменьшить размер на 12,5Кб (на 9 %).
Сжатие http:// ......info/.../sprite.png без потери качества позволит уменьшить размер на 10,9Кб (на 33 %).