簡體   English   中英

GDI +位圖保存問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM