ruby-on-rails - 使用 CarrierWave 调整图像大小而不保留原始纵横比
问题描述
我正在使用 CarrierWave 为我上传的图像添加版本。resize_to_fit 正在调整图像大小以适应指定尺寸,同时保留原始纵横比。如何在不保留原始纵横比或裁剪它们的情况下调整图像大小?
解决方案
您需要使用 Carrierwave 的方法在上传器中定义自定义处理manipulate!
方法。这是我刚刚测试过的一个例子:
class Uploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
storage :file
process :force_resize => [160, 160]
def force_resize(width, height)
manipulate! do |img|
img.resize("#{width}x#{height}!")
img
end
end
end
这会将图像大小调整为 160x160px,而不考虑纵横比(注意参数末尾的感叹号resize
)。
推荐阅读
- c# - C# - 确定方法 ReturnType 是否属于特定类型
- javascript - 在 smarty 中使用 {literal} 的最佳实践是什么
- git - 使用 maven-release-plugin 时的管道循环
- exception-handling - 如何生成 SPARC 硬件陷阱(陷阱类型 tt < 128)
- c# - Nethereum C# 如何获得地址余额?
- sql - SQL Server 中关键字“WITH”附近的语法不正确
- node.js - KAFKA-NODE:管理多个消费者组
- javascript - 如何使用 contenteditable 元素插入新页面
- javascript - 编写一个函数,它接受两个参数,一个数字数组和一个数字,如果数字在数组中,则返回 true 或 false
- angular - Angular cli 应用程序中的摇树摩纳哥编辑器