我想在Windows上将原始RGB图像数据(我可以在必要时添加BMP标头)转换为JPEG。没有DLL可以这样做吗? 我尝试静态编译IJG jpeglib,但我有VC ++ 9,它只适用于VC ++ 10
答案 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无法提供的额外库)。
为此,创建一个Bitmap
,LockBits
以获取可写指针,写入数据和UnlockBits
。
如果图像是从OpenGL捕获的,则必须RotateFlip
,否则它将颠倒。
现在创建一个PropertyItem
并填写元数据,然后SetPropertyItem
上的Bitmap
。
创建并初始化EncoderParameters
,在此处设置质量等等。
最后,在Save
上致电Bitmap
。