【问题标题】:Manipulate pixels using Minimagick使用 Minimagick 处理像素
【发布时间】:2018-12-13 14:26:09
【问题描述】:

有没有办法操纵像素并创建或修改被操纵的图像以反映对像素所做的更改?

Minimagick 只提供get_pixels 方法。

我应该将数组转换为字符串并使用import_pixels 方法吗?但是,我怎样才能将像素重新转换为 blob?

【问题讨论】:

  • 你想以什么方式操作像素?请对此更清楚。如果你想改变一个像素的颜色,你可以用点图元在它上面绘制。
  • 我需要更改像素的 RGB。以创建图像过滤器为例。
  • 你是逐个像素做的吗?还有其他命令可以以全局方式修改图像的颜色。您是否尝试从头开始逐个像素地创建图像以制作滤镜?在命令行 ImageMagick 中,您可以创建 txt 格式的文本文件并将其转换为图像。此外,诸如 -morphology convolve 之类的命令还允许您创建一个过滤器并从内核元素的各个值中应用它。见imagemagick.org/Usage/convolve

标签: ruby imagemagick minimagick


【解决方案1】:

正确,您应该使用import_pixels 方法。这是一个完整的例子:

# get pixels
img = MiniMagick::Image.open("image.jpg")
pixels = img.get_pixels

# transform pixels
reverse = pixels.map(&:reverse)

# save pixels
blob = reverse.flatten.pack("C*")
img = MiniMagick::Image.import_pixels(blob, img.width, img.height, 8, "rgb", "jpg")
img.write("reverse.jpg")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    相关资源
    最近更新 更多