我有一個回形針自定義處理器的幾個問題。回形針自定義處理器不改變圖像類型
在命令行這一行:
$ convert cats.jpg -thumbnail 300x400 -bordercolor white -background black +polaroid cats.png
成功轉換此:
https://dl.dropboxusercontent.com/u/4233433/cats.jpg
向該:
https://dl.dropboxusercontent.com/u/4233433/cats.png
即JPEG轉換成PNG與transpar恩背景。這正是我想要實現的。
然而,當我嘗試使用回形針我結束了內滑軌(4.0.1)要做到這一點:
[鏈接中發佈註釋]
它改名爲PNG,但實際上是一個JPEG。
我的模型:
class Submission < ActiveRecord::Base
has_attached_file :photo,
processors: [:polarize],
styles: {
polarized: {
format: 'png',
is_polarized: true
}
}
belongs_to :user
end
而且我的處理器:
module Paperclip
class Polarize < Processor
def initialize file, options = {}, attachment = nil
super
@file = file
@attachment = attachment
@is_polarized = options[:is_polarized]
@current_format = File.extname(@file.path)
@format = options[:format]
@basename = File.basename(@file.path, @current_format)
end
def make
temp_file = Tempfile.new([@basename, @format].compact.join("."))
temp_file.binmode
if @is_polarized
run_string = "convert #{fromfile} -thumbnail 300x400 -bordercolor white -background white +polaroid #{tofile(temp_file)}"
Paperclip.run(run_string)
end
temp_file
end
def fromfile
File.expand_path(@file.path)
end
def tofile(destination)
File.expand_path(destination.path)
end
end
end
在我的數據庫photo_content_type
是image/jpeg
和photo_file_name
是cats.jpg
時,我會分別預計image/png
和cats.png
。有任何想法嗎?
UPDATE
錯誤是在這條線
temp_file = Tempfile.new([@basename, @format].compact.join("."))
改變它
temp_file = Tempfile.new([@basename, @format])
修復的東西。感謝肖恩 - 霜杜克 - 傑克遜
鏈接到第三圖片: https://dl.dropboxusercontent.com/u/4233433/cats-1.png – dwkns