【问题标题】:Ruby: How do I overlay images on top of another WITHOUT Imagemagick?Ruby:如何在没有 Imagemagick 的情况下将图像叠加在另一个之上?
【发布时间】:2012-01-13 04:46:35
【问题描述】:

我有一个 100 X 100 的图像,并希望将其置于 200 X 200 的空白图像的中心。

我将如何使用 ImageScience 和 Ruby 或其他第三方软件包来做到这一点?没有 ImageMagick 也没有 FreeImage?我知道这很受限制,但是这两个对我来说相当蹩脚,因为它们都不能在我的本地 Mac 和我的 EngineYard Amazon 实例上工作。我可以在我的 Mac 上将 FreeType 与 Ruby 一起使用,但它无法在 Amazon 云上部署。我无法在我的 Mac 上安装 RMagick,但它可以安装在我的亚马逊云上。

顺便说一句,我觉得 ImageMagick 应该自动安装在每台 Linux 和 Mac 机器上。会为一些人省去很多麻烦。这么少的价值,这么多的痛苦。

【问题讨论】:

  • 那么您需要帮助安装 imagemagick 吗?图像科学有效吗?

标签: ruby image-science


【解决方案1】:

最好的方法是使用纯 ruby​​ 库,例如来自 Seattle.rb 的 http://docs.seattlerb.org/png/https://github.com/wvanbergen/chunky_png

这很容易理解。您应该创建一个 200x200 的白色画布并将图像加载到上面,或者如果您觉得更容易,可以使用 alpha 混合来合成图像。

(来自chucky的例子):

# Compose images using alpha blending.
avatar = ChunkyPNG::Image.from_file('avatar.png')
badge  = ChunkyPNG::Image.from_file('no_ie_badge.png')
avatar.compose!(badge, 10, 10)
avatar.save('composited.png', :fast_rgba) # Force the fast saving routine.

如果您真的不需要新图像并且它只是用于显示图像,那么使用 css 和/或 javascript 会容易得多。

【讨论】:

  • 非常感谢!这就是我要找的!!!哇!我以为我将不得不通过 ImageMagick。哈哈
【解决方案2】:

也许可以回避这个问题,但您是否尝试通过 Homebrew 在 Mac 上安装 ImageMagick?这就像安装 Homebrew 并输入一个命令一样简单:

brew install imagemagick

这应该完全没有任何问题。 Homebrew 就像 Mac OS X 中应该默认包含的包管理器。我还使用它来安装默认不包含的其他包,例如 Git、Ack、Graphviz...

【讨论】:

  • @mika:请参阅问题中的文字:“我知道这很受限制,但那两个对我来说相当蹩脚,因为两者都不能在我的本地 Mac 上工作”。在我看来,提问者不知道 Homebrew,试图以其他方式安装 ImageMagick,但失败了。然而,使用 Homebrew,这非常容易。似乎提问者甚至更喜欢 ImageMagick,因为他说“我觉得 ImageMagick 应该自动安装在每台 Linux 和 Mac 机器上”。
  • 你是对的!但它不会让我在没有答案编辑的情况下支持你:-/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 2021-10-28
  • 1970-01-01
  • 1970-01-01
  • 2011-03-24
  • 1970-01-01
相关资源
最近更新 更多