我有一個IMG文件,我需要閱讀並顯示爲圖片。每個像素由2個字節類型的ushort表示。閱讀IMG文件並創建一個圖像
到目前爲止,我已經將文件讀入一個字節數組並組合了兩個字節(byte0和byte1,byte2和byte3 ...)來創建單個ushort值,但現在我迷失瞭如何創建一個實際這些值的圖像似乎從零到65000以上。
我有一個IMG文件,我需要閱讀並顯示爲圖片。每個像素由2個字節類型的ushort表示。閱讀IMG文件並創建一個圖像
到目前爲止,我已經將文件讀入一個字節數組並組合了兩個字節(byte0和byte1,byte2和byte3 ...)來創建單個ushort值,但現在我迷失瞭如何創建一個實際這些值的圖像似乎從零到65000以上。
您要查看的類是圖像和位圖。
位圖有一個構造函數,看起來像這樣:
public Bitmap(
int width,
int height,
int stride,
PixelFormat format,
IntPtr scan0
)
它可能是你IMG正在使用的PixelFormat Format48bppRgb這是紅色,綠色和藍色的16位,所以它可能只是工作。
如果您沒有能夠定義正確尺寸的位圖,那麼像上面那樣定義像素格式,然後在圖像中的每個像素上手動設置SetPixel()。
我還沒有嘗試過這些,但希望它會成爲一個正確的方向。
好吧,我正在嘗試使用setPixel,但是如何從ushort轉到顏色? – IronCanTaco
我明白你的意思:(我會盡管有一些東西可以處理所有事情,但我確實看到了這篇文章,我認爲這可能是你正在尋找的東西 http://www.codeproject.com/文章/ 482727/GDIplus-深顏色解決方法 –
對於超過65000的小數+1;)。 ushort是2^16 = 0到65,535。這一切都歸結於IMG文件的格式...對於某些標準,每個像素將由R(ed)G(reen)B(lue)值表示,其值從0到255不等。這將要求每個像素爲3個字節(即3×2^8)。因此,如果可以的話,請發佈您想要解析的示例圖片 - 這對於確定格式時有幫助。 – kape123
噢,是的,是的,2^16 ... – IronCanTaco
至於文件,這是ct掃描的.img文件,你可以在這裏查看文件 - > http://1drv.ms/1P7P130(onedrive鏈接) – IronCanTaco