[英]GDI+ Bitmap Save problem
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}
&Gdiplus::ImageFormatJPEG
是作為第二個參數發送的錯誤值(因此,新文件的大小為零字節)。 看一下Image::Save()
參考頁底部的代碼示例,該示例演示Save()
的正確用法。
AFAIK,您不能只將圖像格式GUID(在您的情況下為“ ImageFormatJPEG”)傳遞給“ Image :: Save”方法。 第二個參數應該保存編碼器GUID,而不是格式GUID。 在這里查看示例
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.