首先,我將一個大小爲7KB的.bmp圖像上傳到服務器,然後在需要時向服務器發送請求以獲取該圖像,並且圖像將以base64編碼格式發送。如果我將該文件保存爲.bmp格式,則保存的圖像看起來與我上傳的圖像完全相同,但大小約爲4KB。C#:如何解壓縮以base64編碼格式接收的圖像?
我認爲,雖然上傳圖像被壓縮。如果是這樣,我該如何解壓縮它。
我在用下面的代碼保存圖像:
MemoryStream stream = new MemoryStream(Convert.FromBase64String(strImageInBase64Format));
Bitmap bmp = new Bitmap(stream);
bmp.Save("some.bmp");
如果通過像素比較兩者的像素,有什麼不同?元數據說了什麼?一個可以保存爲24 bpp,另一個可以保存爲32 bpp。你也確定*返回的文件是BMP? Windows和大多數圖像瀏覽器可能會忽略錯誤的擴展名,並根據其真實的編解碼器來顯示圖像。 另外,你爲什麼需要*解壓*它?如果使用BMP 24位RLE或PNG進行無損壓縮,有什麼危害?如果使用JPG損失壓縮,則信息無論如何都會丟失。 – Martheen
良好的壓縮圖像不能被我正在使用的某些硬件打印。我會看看bpp的東西 – pasha
然後只需將解碼的字節加載爲Image,並將其保存爲BMP。這種方式即使網絡服務器返回JPG或WEBP,你仍然飼料硬件普通BMP – Martheen