+ко второму камменту, причем не просто создавать их Image Magick`ом, а его КОНСОЛЬНОЙ версией примерно по такой схеме:
— Получаем файл в темп
— Делаем необходимые переименования, проверки и т.д.
— Складываем оригинал туда где он будет лежать
— запускаем через exec() /usr/bun/convert…;
Собственно в чем прикол… и почему это лучше делать так. Я однажды имел дело с плагином uploadify для jquery, который позволяет делать мультизагрузку фотографий. Сначала использовал GD, но на фотографиях больше 2-х метров этот плагин начинал сходить с ума из-за того что php gd очень тормозил на таких фотографиях (а разрабатывалось и тестилось ПРИНЦИПИАЛЬНО на милимальной VDSке, чтобы если там заработает, то на нормальной как минимум на 10 одновременных пользователях не ляжет, из этих соображений). Иными словами, плагин сходил с ума из-за того что долго не получал ответов от сервера, который был в это время занят обработкой фоток. В случае с exec() php по барабану сколько времени оно будет выполняться, он запустил команду и не ждет ответа, а занимается дальше своими делами.
И еще камень в сторону GD. Есть такое слово exif. Не один десяток кирпичей из меня вылезло по этому поводу. Столкнетесь — поймете) у IM этой проблемы нет )
Удачи!