Постобработка Paperclip -Как сжать изображение с помощью jpegoptim/optpng

Я хотел бы использовать 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? или безопасно ли просто проверить, содержится ли строка расширения в этой строке?

13
задан larryzhao 8 May 2012 в 08:53
поделиться