如何使用carrierwave从图像中删除EXIF(相机)数据?

11

有人知道吗? 使用paperclip时,有一个特殊的配置命令。

从图像中删除相机数据可以保留每个文件25-30 KB。如果我们制作了许多版本(缩略图、小图等),这是非常敏感的。在小图像中,没有此信息的文件的实际大小可以减少5-6倍。

先行感谢!

2个回答

26

Carrierwave非常灵活,可以自定义处理器。使用MiniMagick时,我们可以使用mogrify命令行工具的许多选项之一:strip。

class ImageUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick

  version :small do
    process :resize_to_fill => [100, 100]
    process :strip
  end

  def strip
    manipulate! do |img|
      img.strip
      img = yield(img) if block_given?
      img
    end
  end
end

1
这应该是 strip! - Maros

1
如果有人到这里并想知道为什么它不起作用,那是因为应该使用strip而不是strip!。方法名称直接传递给ImageMagick,它不理解strip!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接