代码之家  ›  专栏  ›  技术社区  ›  coolaj86

如何将RGB缓冲区转换(编码)为纯C格式的JPEG?

  •  2
  • coolaj86  · 技术社区  · 15 年前

    我希望有一种图书馆可以这样使用:

    int* buffer[720*480]; // read in from file/memory/network stream
    raw_params params;
    params.depth = 16;
    params.width = 720;
    params.height = 480;
    params.map = "rgb";
    params.interleave = JPEG_RAW_INTERLEAVE_OFF;
    
    jpeg_encode(buffer, params)
    

    但我好像找不到。

    澄清

    netpbm magick 对我的理解水平来说太复杂了。

    3 回复  |  直到 15 年前
        1
  •  3
  •   Taco de Wolff    15 年前

    是的,这里有一个图书馆(幸运的是!): http://freshmeat.net/projects/libjpeg/ 相等(?)到 http://sourceforge.net/projects/libjpeg/

        2
  •  3
  •   RBerteig Keith Adler    15 年前

    这个 libjpeg 独立JPEG组的库是JPEG标准的参考实现,由参与标准创建的人员编写。它坚固、稳定、便携性强。

    它是一个源代码包,其中包括大量文档和示例。

    它对源图像的首选表示是作为像素数组的数组指针,而不是如您所示的单个单片数组。不过,您可以轻松地创建指向行的指针数组,以寻址图像缓冲区。

    它是高度可配置和可扩展的。具体来说,它允许通过回调配置数据源和目标。这给第一次使用增加了一些复杂性,但并不是很难处理。

    当然也有商业图书馆,我知道有商业可用的IP在硬件中实现JPEG。商业图书馆可能更快,但永远不会便宜。

        3
  •  1
  •   coolaj86    15 年前
    推荐文章