Ruby / Rails图像处理库

stackoverflow的好朋友,我今天在这里获取有关在Rails环境中使用Ruby进行图像处理/操作的指导。 我正在制作即时动态横幅广告,这些广告主要包含(如果不是完整的)文字。 只有一两行就很简单了,但我想选择调整字体,文字颜色,文字大小等。

您为此类任务推荐了哪些库?

我已经在rMagick中读了一些内容,我看到很多关于内存问题和缺乏文本呈现function的抱怨。 我没有看到很多其他活跃的项目。

谢谢!

编辑:我有机会乱用RMagick,虽然它的库是全function的,但它严重缺乏文本部门。 我无法使用的一个function是不间断的空间。 我正在我的文本中打印一个电话号码,区号与其他号码不同,这是没有意义的。

我选择RMagick作为目前最好的解决方案,因为它function齐全且积极开发,但它绝不是一个好的解决方案。

我写了类似下面的内容:

require 'rubygems' require 'RMagick' include Magick image = Image.new(50, 50) { self.background_color = "white" } text = Draw.new text.annotate(image, 0,0,0,40, 'Named Colors') { self.fill = 'black' self.pointsize = 32 } image.write("image.png") 

这应该很容易遵循。 另请查看文档 。 虽然它并不完美,但它几乎都在那里。

最近我一直在尝试使用Ruby从数据集创建图表/图表。 当我无法找到真正做到我想要的任何库或gem时,我开始修补SVG图形,我发现它们实际上很容易创建。 SVG格式只是纯文本XML。 我在Inkscape中构建了一个SVG图像,将其保存为一个普通的SVG文件,我的Ruby脚本使用该文件作为模板(我动态更新了一些行元素和几个文本标签,并使文件的结构保持不变)。 SVG为您提供各种字体选项(如CSS或HTML)。

这 两个教程让您快速了解SVG以及如何使用可以写入文本文件的任何应用程序或语言快速构建映像。 Ruby可以使用普通旧的puts来构建SVG文件,或者你可以让’builder’gem为你做格式化。

您可以将图像处理需求扩展到ImageMagick的命令行版本,而不是使用rMagick Ruby绑定。

你只限于MRI Ruby吗? 如果有任何方法可以访问jRuby实例(例如,可能在EC2堆栈上),您可以使用精彩的Processing库。 之前我参与过的一个项目通过jRuby与Processing做了类似的事情,它确实是一个非常强大的组合。

你可以使用mini-magick在Ruby中使用ImageMagick。

ImageScience库是为讨厌rMagick内存使用不良等的人而设计的。我将它用作attachment_fu插件的后端处理器,这使得在Rails中制作图像模型变得容易。