我正在使用Paperclip来转换图像。我注意到如果颜色空间没有设置为srgb,则生成的图像质量会严重下降。
有没有办法验证上传图片的色彩空间?
答案 0 :(得分:1)
我得到了一半可能有帮助的答案......
您需要安装:https://github.com/rmagick/rmagick
添加到您的型号:
attr_accessor :image_colorspace
validates_exclusion_of :image_colorspace, in: [Magick::CMYKColorspace], message: 'is not RGB'
before_logo_post_process :read_image_colorspace
def read_image_colorspace
self.image_colorspace = Magick::Image.from_blob(image.queued_for_write[:original].read).first.colorspace
true
end
(将image
替换为您的附件名称。)
...或者,如果你不想使用rmagick,并且你有一个'nix系统,你可以这样做:
attr_accessor :image_colorspace
validates_exclusion_of :image_colorspace, in: ['CMYK'], message: 'is not RGB'
before_logo_post_process :read_image_colorspace
def read_image_colorspace
self.logo_colorspace = `identify -verbose %m "#{image.queued_for_write[:original].path}" | grep 'Colorspace'`.to_s.upcase.strip.split(' ').last
true
end