如何在Rails中选择特定像素的颜色?

时间:2011-12-22 23:09:09

标签: ruby

有可能以某种方式在rails中执行以下操作吗?

  1. 从图像中获取特定像素的颜色(例如,位置10px乘10px)
  2. 从图像中删除所有出现的颜色(用透明像素替换)
  3. 裁剪图像以排除任何外部透明像素
  4. 任何建议都将不胜感激!

2 个答案:

答案 0 :(得分:7)

滑轨?否。

红宝石?是。

查看RMagick:http://rmagick.rubyforge.org/

答案 1 :(得分:1)

以下是我使用RMagick进行操作的代码(感谢Alex Wayne将我指向RMagick)......

    require 'RMagick'
    img = Magick::Image.read("sample.jpg").first
    bgcolor = img.pixel_color(1,1)
    img.format = "PNG"
    img.fuzz = 0.05
    img.trim!
    img.resize_to_fit!(100, 40)

    bg = Magick::Image.new(100,40) { self.background_color = bgcolor }
    img = bg.composite(img, Magick::CenterGravity, Magick::OverCompositeOp)

    img.write("modified.png")

对于我的初始要求(只删除外部颜色或空白边框),您只需要以下内容:

require 'RMagick'
img = Magick::Image.read("sample.jpg").first
img.trim!
img.write("sample.jpg")