Используйте возможности библиотеки GD. Вам поможет функция imagecreatefromjpeg() и иже с ней.
(Добавление)
bt_corp пишет:И так решил оптимизировать свой код загрузки аватров.
Хочу сделать три изображения 24x24px, 64x64px, 100x100px.
Я делаю это так. Храню на сервере оригинал изображения. Браузер запрашивает изображение примерно следующим образом "http://site.ru/img.php?mode=mini&src=files/gallery/1.jpg", где параметр "mode" определяет размер изображения, а "src" путь к нему (либо это может быть id, если изображение берется из базы) в скрипте вывода изображения. Также у меня есть конфигурационный файл, который подключается к скрипту, а в нем есть такие значения:
tmb_width = 160
tmb_height = 135
mini_width = 640
mini_height = 480
img_width = 1024
img_height = 768
Это как раз те значения, которые будут применены в скрипте для преобразования картинки в зависимости от переданного параметра "mode". Т.к. запросов к картинке может быть много, и чтобы не грузить сервер постоянными преобразованиями картинки "на лету", я произвожу кеширование преобразованного изображения. Скрипт при очередном запросе проверяет наличие кешированного изображения, и если оно не найдено производит преобразование и сохраняет его в кеше. В противном случает берет изображение из кеша.
А само кеширование у меня производится так. Если изображения лежат в папке files/gallery/, то кешированные изображения будут сохраняться в папку files/gallery/.thumb/. А если имя оригинального файла было 1.jpg, то его кешированная измененная версия сохранится с именем 1.jpg.mini или 1.jpg.tmb. Как можно догадаться, в зависимости от параметра "mode".
|