【问题标题】:Ruby/Rails image processing librariesRuby/Rails 图像处理库
【发布时间】:2010-12-14 20:23:45
【问题描述】:

stackoverflow 的好朋友们,我今天在这里寻求有关在 Rails 环境中使用 Ruby 进行图像处理/操作的指导。我正在创建动态的动态横幅广告,其中大部分(如果不是完全)文本。只需一两行就相当简单,但我想要调整字体、文本颜色、文本大小等的选项。

对于此类任务,您推荐哪些库?

我在 rMagick 中阅读了一些内容,我看到很多关于内存问题和缺乏文本呈现功能的投诉。我没有看到很多替代的活跃项目。

谢谢!

编辑:我有机会玩弄 RMagick,虽然它的库功能齐全,但它在文本部门严重缺乏。我无法使用的一项功能是不间断空格。我在文本中打印了一个电话号码,而将区号与号码的其余部分放在不同的行上确实没有意义。

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

【问题讨论】:

标签: ruby-on-rails ruby image image-processing


【解决方案1】:

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

【讨论】:

  • Imagescience 更适合调整图像大小/裁剪图像,而不是像他要求的那样生成。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      我写了如下内容:

      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")
      

      这应该很容易理解。也看看the documentation。虽然它不是很完美,但它几乎都在那里。

      【讨论】:

        【解决方案5】:

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

        Thesetwo 教程让您快速了解 SVG,以及如何使用任何可以写入文本文件的应用程序或语言快速构建图像。 Ruby 可以使用普通的 puts 来构建 SVG 文件,或者您可以让“builder” gem 为您进行格式化。

        【讨论】:

          【解决方案6】:

          您是否仅限于 MRI Ruby?如果有任何方法可以访问 jRuby 实例(例如,可能在 EC2 堆栈上),您可以使用出色的 Processing 库。我之前参与的一个项目通过 jRuby 做了类似的处理,它确实是一个非常有效的组合。

          【讨论】:

            【解决方案7】:

            可能值得一看 image_processing gem: https://github.com/janko/image_processing 它使用 ImageMagick 或 VIPS(后者效率更高)。

            【讨论】:

              猜你喜欢
              • 2023-01-08
              • 1970-01-01
              • 2012-10-03
              • 1970-01-01
              • 2010-10-04
              • 1970-01-01
              • 1970-01-01
              • 2016-04-23
              • 2011-11-21
              相关资源
              最近更新 更多