使用Minimagick操作像素



是否有一种方法可以操作像素并创建或修改操作后的图像以反映对像素所做的更改?

Minimagick只提供了一种get_pixels方法。

我应该将数组转换为字符串并使用import_pixels方法吗?但是,如何将像素重新转换为斑点?

正确,应该使用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")

最新更新