Paperdragon 的 Trailblazer Operation 如何按顺序处理图像?
How can a Trailblazer Operation with Paperdragon process an image sequentially?
在使用Paperdragon处理图片的Trailblazer操作中,典型的代码如下:
def process(params)
validate(params) do |f|
f.image!(f.upload) do |v|
v.process!(:original)
v.process!(:version_a) { |job| job.something... }
v.process!(:version_b) { |job| job.something... }
v.process!(:version_c) { |job| job.something... }
end
end
end
end
这将从上传的图像创建四个版本,这些图像在操作合同中可作为 upload
访问。
我想做一些事情 :original
导致 :edited
,然后使用 :edited
作为 :verson_a
、:version_b
和 :version_b
的基线:version_c
。我如何使用 Paperdragon 实现这一目标?
您可以 运行 使用第一个创建的版本作为其输入的第二个处理块:
def process(params)
validate(params) do |f|
f.image!(f.upload) do |v|
v.process!(:original)
v.process!(:edited) { |job| job.thumb!(crop) }
end
end
f.image!(f.file(:edited)) do |v|
v.process!(:version_a) { |job| job.something... }
v.process!(:version_b) { |job| job.something... }
v.process!(:version_c) { |job| job.something... }
end
f.save
end
end
其中 file
是合约上的一个方法:
def file(version)
File.new(Dragonfly.app.datastore.server_root+image[version.to_sym].url)
end
在使用Paperdragon处理图片的Trailblazer操作中,典型的代码如下:
def process(params)
validate(params) do |f|
f.image!(f.upload) do |v|
v.process!(:original)
v.process!(:version_a) { |job| job.something... }
v.process!(:version_b) { |job| job.something... }
v.process!(:version_c) { |job| job.something... }
end
end
end
end
这将从上传的图像创建四个版本,这些图像在操作合同中可作为 upload
访问。
我想做一些事情 :original
导致 :edited
,然后使用 :edited
作为 :verson_a
、:version_b
和 :version_b
的基线:version_c
。我如何使用 Paperdragon 实现这一目标?
您可以 运行 使用第一个创建的版本作为其输入的第二个处理块:
def process(params)
validate(params) do |f|
f.image!(f.upload) do |v|
v.process!(:original)
v.process!(:edited) { |job| job.thumb!(crop) }
end
end
f.image!(f.file(:edited)) do |v|
v.process!(:version_a) { |job| job.something... }
v.process!(:version_b) { |job| job.something... }
v.process!(:version_c) { |job| job.something... }
end
f.save
end
end
其中 file
是合约上的一个方法:
def file(version)
File.new(Dragonfly.app.datastore.server_root+image[version.to_sym].url)
end