ruby - 在 Ruby 中逐像素读取图像

标签 ruby imagemagick heroku sinatra

我正在尝试打开一个图像文件并按颜色将像素列表存储在变量/数组中,以便我可以一个一个地输出它们。

图像类型:可以是 BMP、JPG、GIF 或 PNG。任何一个都可以,只需要支持一个。 颜色输出:RGB 或 Hex。

我查看了几个库(RMagick、Quick_Magick、Mini_Magick 等),它们看起来都太过分了。 Heroku 在使用 ImageMagick 时也有一些困难,我的测试无法运行。我的应用程序在 Sinatra 中。

有什么建议吗?

最佳答案

您可以使用 Rmagickeach_pixel为此的方法。 each_pixel 接收一个 block 。对于每个像素, block 传递像素、像素的列号和行号。它从左到右和从上到下遍历像素。

所以像这样:

pixels = []

img.each_pixel do |pixel, c, r|
    pixels.push(pixel)
end
# pixels now contains each individual pixel of img

关于ruby - 在 Ruby 中逐像素读取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4342100/

相关文章:

ruby - 向 Rails 3 中的延迟作业添加一些自定义方法?

ruby - Ruby 中的递归。我这样做正确吗?

ruby-on-rails - Ruby on Rails、ActiveRecord、Postgres、UTF-8 和 ASCII-8BIT 编码

ruby-on-rails - 在 Mac OS 10.5.8 中安装 ImageMagick for paperclip gem

Ruby - 如何检查文件是否存在于谷歌云存储(桶)中?

ImageMagick:如何将一个 gif 的每帧延迟应用于另一 gif?

c++ - Rcpp : Magick++ 中的编译器和链接器标志

ruby-on-rails - 尝试在 heroku 上部署应用程序时被拒绝

ssl - 我们如何避免来自herokuapp的额外中间证书

ruby-on-rails - 开发组下的 Sqlite3 但仍然出现 Heroku 部署错误