【问题标题】:JPEG compressing without DLLs没有 DLL 的 JPEG 压缩
【发布时间】:2011-07-08 01:19:15
【问题描述】:

我想在 Windows 上将原始 RGB 图像数据(如有必要,我可以添加 BMP 标头)转换为 JPEG。没有DLL可以这样做吗? 我尝试静态编译 IJG jpeglib,但我有 VC++ 9,它只适用于 VC++ 10

【问题讨论】:

    标签: c++ c windows jpeg


    【解决方案1】:

    使用 GDI+ 将图像保存到文件中。例如,请参阅http://msdn.microsoft.com/en-us/library/ms535407(VS.85).aspx 了解如何保存到文件。指定 JPEG 编码器。要将图像加载到 Image 类中,可以使用 Bitmap 类(继承自 Image)。有几种方法可用:http://msdn.microsoft.com/en-us/library/ms536286(VS.85).aspx

    GDI+ 随 Windows XP 和更新版本一起提供,并且可以为旧的 Windows 版本重新分发。所以你可能不需要捆绑任何更新的东西。

    【讨论】:

      【解决方案2】:

      是的,要么编写自己的 JPEG 编码器,要么使用其他库,例如 OpenCV。静态链接时只需注意其许可要求

      【讨论】:

        【解决方案3】:

        reference implementation 可免费用于任何类型的项目。

        此外,您可以使用 GDI+ 编写 JPEG 图像(无需任何 Windows 还没有的额外库)。

        为此,创建BitmapLockBits 以获取可写指针、写入数据和UnlockBits

        如果图像是从 OpenGL 捕获的,则必须 RotateFlip 它,否则它会颠倒过来。

        现在创建一个PropertyItem 并填写元数据,然后在Bitmap 上填写SetPropertyItem

        创建并初始化一个EncoderParameters,在这里你可以设置质量等等。

        最后,在您的Bitmap 上致电Save

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-02-02
          • 2011-03-29
          • 2011-08-09
          • 1970-01-01
          • 2013-02-22
          • 2021-07-15
          • 1970-01-01
          相关资源
          最近更新 更多