Bitmap bff(L"1.jpg");
bff.Save(L"2.jpg", &Gdiplus::ImageFormatJPEG, NULL);


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

为什么我的文件长度为零字节?
我正在执行此测试,因为将其他位图写入文件会导致相同的输出。

最佳答案

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

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


以下是其他格式的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}

10-08 11:59