Ruby Rails中RMagick的ImageMagick脚本存在问题

Ruby Rails中RMagick的ImageMagick脚本存在问题,ruby,imagemagick,rmagick,Ruby,Imagemagick,Rmagick,我有以下命令行脚本,可以按照我的意愿工作: convert photo.jpg-色彩空间灰色\(+clone-blur 0x10\)+交换-合成-分割-合成-线性拉伸5%x0%sketch.jpg 但是在我的Rails项目中,我很难让最终的图像看起来相同。我正在使用RMagick,我已经尽可能地遵循转换文档,但这并不完全正确 我的流程代码(在CarrierWave::Uploader::Base类中)如下所示: process :do_stuff def do_stuff manipul

我有以下命令行脚本,可以按照我的意愿工作:

convert photo.jpg-色彩空间灰色\(+clone-blur 0x10\)+交换-合成-分割-合成-线性拉伸5%x0%sketch.jpg

但是在我的Rails项目中,我很难让最终的图像看起来相同。我正在使用RMagick,我已经尽可能地遵循转换文档,但这并不完全正确

我的流程代码(在
CarrierWave::Uploader::Base类中)如下所示:

process :do_stuff

def do_stuff
  manipulate! do |img|
    img.colorspace = Magick::GRAYColorspace
    blur = img.clone.blur_image(0,10)
    blurred = Magick::ImageList.new
    blurred << blur
    blurred << img
    sketch = Magick::Image.new(300,20)
    img = sketch.composite(blurred,Magick::CenterGravity,Magick::DivideCompositeOp)
    img = img.linear_stretch('05%','00%')
  end
end
过程:做一些事情
做什么
操纵do | img|
img.colorspace=Magick::GRAYColorspace
模糊=img.clone.blur\u图像(0,10)
模糊=Magick::ImageList.new

我讨厌回答我自己的问题,但我似乎已经解决了

看起来我太聪明了,但在读了几遍文档之后,我想我对
+swap
复合方法的交互方式感到困惑

据我所知,
+swap
确保了不再在灰度图像上合成模糊图像,而是在模糊图像的顶部合成灰度图像

单击此按钮后,脚本看起来简单得多:

process :do_stuff

def do_stuff
  manipulate! do |img|
    img.colorspace = Magick::GRAYColorspace
    blur = img.clone.blur_image(0,10)
    img = blur.composite(img,Magick::CenterGravity,Magick::DivideCompositeOp)
    img = img.linear_stretch('5%','0%')
  end
end

这似乎产生了与我最初的ImageMagick脚本相同的结果。

不想回答我自己的问题,但我似乎已经解决了它

看起来我太聪明了,但在读了几遍文档之后,我想我对
+swap
复合方法的交互方式感到困惑

据我所知,
+swap
确保了不再在灰度图像上合成模糊图像,而是在模糊图像的顶部合成灰度图像

单击此按钮后,脚本看起来简单得多:

process :do_stuff

def do_stuff
  manipulate! do |img|
    img.colorspace = Magick::GRAYColorspace
    blur = img.clone.blur_image(0,10)
    img = blur.composite(img,Magick::CenterGravity,Magick::DivideCompositeOp)
    img = img.linear_stretch('5%','0%')
  end
end
这似乎产生了与我最初的ImageMagick脚本相同的结果