Я хотел бы использовать jpegoptim
или optipng
для сжать изображение, загруженное пользователями через Paperclip.
У меня есть модель Paperclip, настроенная как:
has_attached_file :image,
:styles => {:thumb => '50x50>', :preview => '270x270>' },
:url => "/system/:class/:attachment/:id/:basename_:style.:extension",
:path => ":rails_root/public/system/:class/:attachment/:id/:basename_:style.:extension"
Вопрос 1 :Можно ли сжать исходное изображение, загруженное пользователем, а затем позволить Paperclip изменить его размер, чтобы был только один процесс сжатия? а как это сделать?
Вопрос 2 :Я собираюсь сделать это с помощью обратного вызова after_post_process
, и я мог бы получить все экземпляры трех файлов из image.queued_for_write
, и я хотел бы вызвать jpegoptim/optipng по расширению файла, но когда я использую current_format = File.extname(file.path)
, я получить что-то вроде:.jpg20120508-7991-cqcpf2
. Есть ли возможность получить строку расширения jpg
? или безопасно ли просто проверить, содержится ли строка расширения в этой строке?