【发布时间】:2011-09-06 04:51:13
【问题描述】:
我有一个带有编码 Alpha 通道的 PNG,我想将它与内存中交错存储的原始 ARGB 图像混合。 PNG 与图像缓冲区的分辨率不同,需要相应地调整大小(最好使用插值)。
虽然我很欣赏手动完成这项工作并不是特别困难(一旦 PNG 图像加载到适当的结构中),但我希望找到一个好的开源图像处理库来为我完成这项工作。
我看过一些,包括:
- libGD
- libPNG
- openCV
- ImageMagick
- CxImage
- 英特尔集成性能基元 (IPP)
但似乎没有一个能够处理加载 PNG、调整 PNG 图像大小、将 alpha 混合到图像数据中以及处理 ARGB 格式(而不是 RGBA)的所有要求。
性能是一个问题,因此减少对图像数据的传递将是有益的,尤其是能够将 ARGB 数据保存在适当的位置,而不必将其复制到不同的数据结构来执行混合。
有谁知道任何可以提供帮助的图书馆,或者我是否遗漏了上述任何一项?
【问题讨论】:
-
我想知道为什么 ImageMagick 做不到。它非常强大,也许能够做到。查看即时消息
convert。 -
@Cobra_Fast:我不认为 ImageMagick 支持 ARGB 作为原生格式。见studio.imagemagick.org/discourse-server/…。这确实为使用 CLI 提供了一些提示,但我不太确定它是如何映射到 Magick++ 接口的。
-
为什么不能放弃ARGB要求?在我看来,您要么是动态生成此图像,在这种情况下,您可以按您喜欢的任何字节顺序执行它,或者您是从某个外部源加载它,在这种情况下,重新排序字节的开销fly 让你的图像处理库高兴将完全被加载操作的 I/O 开销所淹没。
标签: c++ c linux image-processing png