让 Paperclip 制作矢量图像的光栅缩略图

Have Paperclip make raster thumbnails of vector images

我正在开发一个使用 Paperclip 将图像附加到某些记录的网站。目前,所有图像都是 jpeg,回形针生成出现在浏览器视图中的 png 缩略图。

我们还想添加对 eps 图片的支持。在不做任何更改的情况下,上传和下载 eps 图像已经可以工作,但不会生成缩略图。 Paperclip 不会记录任何错误,它只是无法生成缩略图。

has_attached_file :drawing, :styles => { :thumb => ["64x64#", :png] }, :convert_options => { :thumb => "-quality 75 -strip" }
validates_attachment :drawing

生成eps文件缩略图需要添加什么?

在我的案例中,结果证明是类型欺骗检测的问题。当不同来源的文件类型信息不一致时,Paperclip 似乎会感到困惑。

我的解决方案是创建名为 config/initializers/paperclip.rb 的文件,内容如下:

Paperclip.options[:content_type_mappings] = {
  eps: "application/octet-stream"
}

我还尝试编辑模型以添加 validates_attachment_content_typevalidates_attachment_file_name,两者都没有任何明显的效果。

如果 Paperclip 不相信附件是可接受的类型并拒绝附加它,我会理解,我不明白为什么它不信任该类型所以它附加文件但不创建缩略图。