将 ppm 转换为 png
Posted
技术标签:
【中文标题】将 ppm 转换为 png【英文标题】:Converting ppm to png 【发布时间】:2011-04-30 02:22:22 【问题描述】:在 Linux 中,我将 .PPM 文件作为图像格式,这需要转换为 PNG 然后保存。我正在查看一些 API 来实现从 PPM 到 PNG 的转换。这可以使用 GDI+ 来完成吗,因为这会变成原生的?
如果那不可能,那么我认为 freeimage 或 pnglib 可以做到这一点,但如果可能的话,我更愿意使用原生 gdi+。
【问题讨论】:
【参考方案1】:您可以使用 ImageMagick 库:
http://www.imagemagick.org/script/index.php
但它还有很多其他功能。
【讨论】:
【参考方案2】:GDI+ 本身并不支持 PPM 格式。因此,无论您做什么,都需要library。
【讨论】:
【参考方案3】:又快又脏:从 CLI 下载 Imagemagick 并使用它:
convert xx.ppm xx.png
或使用 Imagemagick 的 dll API
【讨论】:
【参考方案4】:虽然 ImageMagick 会很乐意满足您的需求,但它实际上是一把大锤,比 NetPBM 安装起来更加麻烦、空间和耗时> 套房。
有了它,你会这样做:
pnmtopng image.ppm > result.png
【讨论】:
我找不到如何下载它。你能提供一个链接吗?谢谢!另外我用的是Visual Studio 2017,有没有可以调用的函数? 在我的 Mac 上安装 imagemagick 就像brew install imagemagick
一样简单。
是的,我在 brew help
或 packages.ubuntu.com
上找不到这个
@DanielLizik 应该在这里...packages.ubuntu.com/…
@Thomas ImageMagick 是一套功能强大且全面的工具。其中很大一部分功能来自利用其他软件包,例如 libtiff、libjpeg、XML 工具、X11、fftw、OpenEXR、Cairo、Pango、freetype、Ghostscript、heif、rsvg、CMS。大量依赖项可能导致不兼容以及安装和配置困难。相比之下,NetPBM 是独立的。不要误会,我对 ImageMagick 的能力感到敬畏,但有时您需要一把剪刀,有时您需要电锯、起重机和工业液压钢板切割机。【参考方案5】:
你可以使用ffmpeg,批量转换你可以做
#!/bin/bash
for i in *.ppm;
do name=`echo "$i" | cut -d'.' -f1`
echo "$name"
ffmpeg -i "$i" "$name.png"
done
【讨论】:
使用 name=$(basename ...) 或 name=$i%.ppm而不是迂回的 name=$( ... cut ...) 方法>以上是关于将 ppm 转换为 png的主要内容,如果未能解决你的问题,请参考以下文章