【问题标题】:Converting ppm to png将 ppm 转换为 png
【发布时间】:2011-04-30 02:22:22
【问题描述】:

在 Linux 中,我将 .PPM 文件作为图像格式,这需要转换为 PNG 然后保存。我正在查看一些 API 来实现从 PPM 到 PNG 的转换。这可以使用 GDI+ 来完成吗,因为这会变成原生的?

如果那不可能,那么我认为 freeimage 或 pnglib 可以做到这一点,但如果可能的话,我更愿意使用原生 gdi+。

【问题讨论】:

    标签: c++ image


    【解决方案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 helppackages.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 ...) 方法>
          猜你喜欢
          • 2018-08-05
          • 2016-07-22
          • 1970-01-01
          • 1970-01-01
          • 2015-11-23
          • 2015-05-10
          • 2017-09-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多