GDI + Bitmap保存问题

Kar*_*gha 0 c++ winapi gdi+

Bitmap bff(L"1.jpg");
bff.Save(L"2.jpg", &Gdiplus::ImageFormatJPEG, NULL);
Run Code Online (Sandbox Code Playgroud)

这将创建一个具有零字节长度的新文件2.jpg.是不是应该写一个与1.jpg相同的图像文件?

为什么我有零字节长度的文件?我正在进行此测试,因为将其他位图写入文件会产生相同的输出.

c00*_*0fd 7

这是一种保存它的快速方法,因为它GetEncoderClsid是一个自定义函数:

//Save to PNG
CLSID pngClsid;
CLSIDFromString(L"{557CF406-1A04-11D3-9A73-0000F81EF32E}", &pngClsid);
bmp.Save(L"file.png", &pngClsid, NULL);
Run Code Online (Sandbox Code Playgroud)

这是其他格式的ID:

bmp: {557cf400-1a04-11d3-9a73-0000f81ef32e}
jpg: {557cf401-1a04-11d3-9a73-0000f81ef32e}
gif: {557cf402-1a04-11d3-9a73-0000f81ef32e}
tif: {557cf405-1a04-11d3-9a73-0000f81ef32e}
png: {557cf406-1a04-11d3-9a73-0000f81ef32e}
Run Code Online (Sandbox Code Playgroud)