我使用CarrierWave,我想調整圖像的寬度爲220px,最大高度爲220px。 如果我使用process :resize_to_fit => [220,220]
它可能是寬度不是220px。我能做什麼?CarrierWave - 設置圖像的寬度和最大高度
0
A
回答
2
安迪轟的答案的改良效果是什麼:
process :resize => [220, 220]
protected
def resize(width, height, gravity = 'Center')
manipulate! do |img|
img.combine_options do |cmd|
cmd.resize "#{width}"
if img[:width] < img[:height]
cmd.gravity gravity
cmd.background "rgba(255,255,255,0.0)"
cmd.extent "#{width}x#{height}"
end
end
img = yield(img) if block_given?
img
end
end
3
如果我理解正確的問題:
的肖像圖像(比如480像素寬,640像素高),你會想它縮小到220px寬,然後再剪裁下來到220px高,導致在一個方形的圖像。
對於風景圖像,您需要將其縮小到220px寬(因此高度將小於220px)。
如果這是正確的,你想有一個過程分爲兩個步驟:
- 大小調整爲220px寬,保持長寬比
- 裁剪以220px高(如縱向)
您可以通過使用manipulate!
命令編寫自己的處理器來實現此目的(請參閱CarrierWave's own以獲取靈感)。
我想這大約是你之後
process :resize => [220, 220]
protected
def resize(width, height, gravity = 'Center')
manipulate! do |img|
img.combine_options do |cmd|
cmd.resize width.to_s
if img[:width] < img[:height]
cmd.gravity gravity
cmd.background "rgba(255,255,255,0.0)"
cmd.extent "#{width}x#{height}"
end
end
img = yield(img) if block_given?
img
end
end
相關問題
- 1. 設置圖像的寬度和高度
- 2. 如何在上傳前設置圖像的最大寬度和最大高度
- 3. 覆蓋圖像限制的最大寬度和最大高度
- 4. 設置jquery彈出大圖像的寬度和高度
- 5. 設置最大高度和最大寬度在JCrop
- 6. PHP圖像大小調整 - 設置高度和寬度自動
- 7. 設置圖像高度=寬度(不DIV)
- 8. Uploadify最小圖像寬度和高度
- 9. CSS或HTML幫助設置圖像的最大寬度和高度
- 10. CSS如何設置圖像而不設置寬度和高度
- 11. Carrierwave和mini_magick查找寬度和高度
- 12. 重置圖像的寬度和高度設置通過css
- 13. 調整圖像的最大寬度和高度
- 14. 在IE和Firefox中設置div的最大高度和最大寬度
- 15. 如何設置位圖的圖像高度和寬度屬性
- 16. CSS響應圖像或者最大寬度或最大高度
- 17. 獲取沒有設置高度/寬度的圖像的高度/寬度
- 18. Carrierwave - 動態高度/寬度和種植
- 19. jQuery prettyPhoto - 爲燈箱設置最大高度和寬度
- 20. Silverlight中的最大寬度和高度
- 21. PHP - 上傳圖像與具有最大寬度和高度
- 22. Uploadify:定義最大圖像寬度和高度
- 23. 設置上傳的舞臺圖像的寬度和高度
- 24. 將div設置爲子圖像的寬度和高度?
- 25. 動態設置圖像的寬度和高度與PHP等
- 26. SpreadSheetAddImage - 添加設置寬度和高度的圖像
- 27. Fancybox設置一些圖像的高度和寬度屬性
- 28. 將圖像的高度和寬度設置爲WPF背景
- 29. 如何設置colorbox iframe中圖像的高度和寬度?
- 30. 如何設置標記包含圖像的寬度和高度
它說'不能轉換爲長整數在String'行'CMD .resize寬度'。 – ijo
啊。然後將其更改爲'「#{width}」或'width.to_s'。 –
但它然後說「未定義的方法」寫入「」:String' – ijo