没有DLL的JPEG压缩

时间:2011-07-07 17:06:57

标签: c++ c windows jpeg

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

3 个答案:

答案 0 :(得分:2)

使用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重新发布。所以你可能不需要捆绑更新的东西。

答案 1 :(得分:0)

是的,要么编写自己的JPEG编码器,要么使用其他lib,如OpenCV。在静态链接它们时,请注意其许可要求

答案 2 :(得分:0)

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

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

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

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

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

创建并初始化EncoderParameters,在此处设置质量等等。

最后,在Save上致电Bitmap