Я хочу создать несколько версий, таких как: large,: medium,: small. Пока нет проблем. Но как эти методы вызывают?carrierwave: несколько вариантов стратегии
Простой тест:
version :large do
process :resize_to_fit => [1024, 1024]
end
version :large2, :from_version=>:large do
process :resize_to_fit => [1024, 1024]
end
результаты в двух разных файлах размера. Я бы предположил, что версии идентичны. Поэтому я предполагаю: big2 перечитывает файл (большой) с диска в RMagick?
Как я могу это сделать «правильно»? (Я бы использовал один и тот же RMagick-Object для создания версий). Я хочу попытаться сохранить carriewave-way и не делать слишком много самостоятельно.
Спасибо и приветствуем любые намеки, Фил.
Спасибо за ваш ответ. Но мой вопрос заключался в повторном использовании одного и того же объекта Magick :: Image (вместо повторного чтения файла с диска) для дальнейшего улучшения производительности. Также мне кажется, что это не способствует лучшему качеству изображения, когда он jpeg-сжат и декомпрессируется чаще, чем необходимо. – Phil
Это не jpeg-сжатие и распаковка больше времени, чем необходимо. Именно так ImageMagick предлагает вам создавать разные размеры.Если вы не хотите делать это, все в порядке; это ваш выбор, но ответ правильный. Если у вас есть момент, прочитайте спецификацию ImageMagick, на которую я указал, вы можете прочитать все о том, как IM занимается вопросами повторной выборки. Удачи. – Elvn
Моя проблема заключается не в том, как imagemagick имеет дело с конкретными изображениями. Моя проблема в том, как carrierwave реализует экземпляр для разных «версий». Поэтому возникает вопрос: читается ли файл с диска, для каждой «версии» или повторно используется ImageMagick/MiniMagick-Object между ними. (большой и большой2 в моем примере) И, насколько я вижу, он НЕ читает снова с диска. Поэтому мое предположение было просто неправильным, и вопрос неактуальен. Я пробовал с сотнями «версий» (каждый из тех же процессоров), и файлы версий, кажется, все написаны в конце. – Phil