0
我得到一個圖像截圖作爲一個字節數組。如何將此圖像轉換爲較低位圖像以減小尺寸?整個圖像只有10種顏色,所以我認爲必須有一些解決方法才能做到這一點。任何提示?減少圖像文件大小
我得到一個圖像截圖作爲一個字節數組。如何將此圖像轉換爲較低位圖像以減小尺寸?整個圖像只有10種顏色,所以我認爲必須有一些解決方法才能做到這一點。任何提示?減少圖像文件大小
您可以將其保存爲調色圖像文件。假設您的圖像保存在Bitmap
類型的變量bmp
中。 mStream
是MemoryStream
在這種情況下,這樣你就可以將其存儲在內存中:
bmp.Save(mStream, Imaging.ImageFormat.Gif)
bmp.Dispose
GIF格式支持各種尺寸的面板上,以256個色,因爲它使用位平面而不是RGB-緩衝區。在你的情況下,它可能會被保存爲16色文件。 GIF使用LZW壓縮,因此生成的文件大小通常較小。
還有PNG-8格式,它與GIF大致相同。
要調用初始化位圖:
mStream.Seek(0, SeekOrigin.Begin)
Dim bmp As Bitmap = Bitmap.FromStream(mStream)
...
bmp.Dispose
可惜你不能創建一個圖形與索引位圖對象 - 否則邏輯的做法是將數據從屏幕拷貝到像素格式PixelFormat.Format4bppIndexed
的位圖。
但是,以索引格式在位圖上創建圖形會引發異常 - 基本上,您需要手動轉換和複製數據。因此,如果圖像不經常需要,我在這個答案中的建議可能會更方便。