Скрепка: Как изменить поведение модификатора "#"? - PullRequest
3 голосов
/ 19 июля 2011

Я использую Paperclip 2.3.11 в своем приложении Rails 3 и создаю миниатюры, используя:

:styles => { :thumb => "80x80#" }

Однако, если изображение маленькое, скажем 32x32, оно увеличивается до размеров миниатюр.

Я бы хотел исправить это, взломав Paperclip.

К сожалению, я не смог найти соответствующий код, который описывает поведение #.

Не могли бы вы указать мне правильное место в коде Paperclip?

Или, может быть, есть лучшее решение?Я хотел бы, чтобы миниатюры были 80x80, если исходное изображение не слишком маленькое (в этом случае размер миниатюры должен быть такого же размера, что и исходное изображение).

Ответы [ 3 ]

0 голосов
/ 19 июля 2011

Вы пробовали :styles => { :thumb => "80x80>#" }? (Извините, не могу попробовать сам ...)

0 голосов
/ 19 января 2012

Вы можете получить больше информации о строке геометрии, которая используется ImageMagick, следующим образом: http://www.imagemagick.org/RMagick/doc/imusage.html

0 голосов
/ 19 июля 2011

Итак, # - это аргумент, используемый Paperclip, чтобы узнать, ожидаете ли вы, что картинка будет обрезана.

Здесь написано здесь через метод crop?, который сам смотрит на geometry[-1,1]: в основном последний символ стиля, который вы вводите.

Вы могли бы тогда:

  • попробуйте то, что предлагает @David Sulc, что, кажется, хорошо с моим предыдущим объяснением

  • копайте дальше в коде Скрепки и, возможно, перепишите transformation_to определено здесь

...