代码之家  ›  专栏  ›  技术社区  ›  Ronny Brendel

解码jpeg以获取未压缩的数据

  •  3
  • Ronny Brendel  · 技术社区  · 15 年前

    我想解码JPEG文件,并以BMP/RGB格式获得未压缩解码输出。我使用GNU/Linux和C/C++。

    我看过libjpeg,但似乎没有任何好的文档可用。 所以我的问题是:

    1. libjpeg的文档在哪里?
    2. 你能推荐其他基于C的jpeg解压库吗?
    5 回复  |  直到 12 年前
        1
  •  6
  •   Nils Pipenbrinck    15 年前

    libjpeg的文档随源代码一起提供。既然你还没有找到它:

    下载源代码存档并打开文件 LBJPEG.DOC . 它是一个普通的ASCII文件,而不是Word文档,所以最好在记事本或其他ASCII编辑器中打开它。

    还有一些其他的.doc文件。不过,他们中的大多数都没那么有趣。

    不幸的是,除了libjpeg,我不能推荐其他任何库。我尝试了两种选择,但Libjpeg总是赢。一旦你完成了基本的工作,就很容易处理。它也是目前最完整和最稳定的jpeg库。

        2
  •  2
  •   balpha    15 年前

    magickwand是用于imagemagick的C API:

    http://imagemagick.org/script/magick-wand.php

    我没有使用它,但是文档看起来相当广泛。

        3
  •  2
  •   Ben Hughes    15 年前

    你应该看看qt的qimage。它有一个非常简单的界面,使这个任务非常简单。每个平台的设置都非常简单。

    如果qt过量,你可以试试magick++ http://www.imagemagick.org/Magick++/ . 它支持类似的操作,也非常适合这类任务。上一次我使用它时,我对它在Windows上的依赖性有点纠结,但在Linux上不记得有多少麻烦。

    对于magick++的image类,您可能需要的函数是getconstpixels。

        4
  •  1
  •   KPexEA    15 年前

    我有一些代码,您可以复制(或作为参考)以使用libjpeg库加载jpeg图像。

    您可以在此处浏览代码: http://code.google.com/p/kgui/source/browse/trunk/kguiimage.cpp

    只需查找函数 加载JPG图像 .

    该代码设置为处理我的C++绑定 数据句柄 类来加载图像,这样图像就可以是内存中已经存在的文件或数据或其他内容。

        5
  •  1
  •   RBerteig Keith Adler    15 年前

    稍微开箱即用的解决方案是获取 netpbm 工具,通过几个非常简单的中间格式之一,将图像从几乎任何格式转换为任何其他格式。它们在shell中工作得很好,最常用于管道中读取任意图像、对其执行操作以及将其写入其他格式。

    PBM格式可以简单到一个普通的ASCII头,后跟一个ASCII或二进制的RGB数据。它们的目的是简单到可以在不需要库实现的情况下使用。

    在netpbm中,libjpeg之上实现的读写过滤器支持jpeg。