将图像裁剪成圆圈rmagick + rails

时间:2014-08-16 16:58:54

标签: css ruby-on-rails ruby image rmagick

我是RoR的新手,对于我们需要调整大小并将图像裁剪成圆形/椭圆形图像的功能。我正在使用Carrierwave gem上传它们和rmagick(2.1.2)来修改rails 4.1平台上的图像。

最重要的是,我们需要在渲染之前动态地使用某种颜色(保存在模态中,每个图像将根据某些参数具有不同的颜色)来屏蔽图像。

对于第一部分,我正在尝试这个:

def crop_large
  manipulate! do |source|
    source = source.resize_to_fill(450,450).quantize(256,Magick::GRAYColorspace).contrast(true)

    canvas = Magick::Image.new 450,450
    gc = Magick::Draw.new
    gc.fill "black"
    gc.circle 225,225,5,225
    gc.draw canvas

    mask = canvas.blur_image(0,1).negate

    mask.matte = false
    source.matte = true
    source.composite!(mask, Magick::CenterGravity, Magick::MultiplyCompositeOp)
  end
end

但这会留下黑色边框,我不知道如何摆脱它们。关于如何解决这个问题的任何线索?

另外,我不知道如何完成第二部分。

1 个答案:

答案 0 :(得分:0)

听起来你有样式问题,通过添加一两个类来修复它, 它会容易得多。