[問題] GDI如何存出16位元深度圖片

看板C_Sharp (C#)作者 (他們稱呼我"鬥士")時間13年前 (2012/06/01 23:52), 編輯推噓0(009)
留言9則, 3人參與, 最新討論串1/1
我想將一張24或是32位元深度的彩色圖片 轉至成為16深度的灰階圖片(類似小畫家的單色點陣圖) 目前作法是new出一個Bitmap,將PixelFormat設成Format16bppGrayScale 但是在作RGB/3的時候,最後SetPixel出來的圖片,似乎只能存成24深度的 搜尋過國內外網站,有些人說GDI SetPixel的圖只會是24以上的 想請問C#還有其他方法可以存出16深度的圖片嗎 還是說VB6有辦法,不然要找小畫家的api了嗎XD (Paint.net似乎也沒有可以存成的) 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.237.55

06/02 10:46, , 1F
16我是不會啦~我都用指標存成8bit的灰階, 再設調色盤為灰階
06/02 10:46, 1F

06/02 10:46, , 2F
用SetPixel的效能非常差哦~建議用指標,但是指標很危險,一不
06/02 10:46, 2F

06/02 10:47, , 3F
心就會溢位, 但溢位也不會常下異常, 會在存取之後的圖出現異
06/02 10:47, 3F

06/02 10:47, , 4F
常, 這時程式就只能重開, 所以在寫的時候要測得很完整,確定
06/02 10:47, 4F

06/02 10:48, , 5F
指標相關的語法沒寫錯
06/02 10:48, 5F

06/02 10:49, , 6F
另外你用/3的方法, 也建議改為*0.333就好了,反正要取整數,這
06/02 10:49, 6F

06/02 10:49, , 7F
樣效能會比較好哦
06/02 10:49, 7F

06/02 11:05, , 8F
只有儲存不顯示嗎?
06/02 11:05, 8F

06/04 23:21, , 9F
感謝
06/04 23:21, 9F
文章代碼(AID): #1FoELK3R (C_Sharp)
文章代碼(AID): #1FoELK3R (C_Sharp)