作者Ethan96 (他們稱呼我"鬥士")
看板C_Sharp
標題[問題] GDI如何存出16位元深度圖片
時間Fri Jun 1 23:52:49 2012
我想將一張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
1F:→ Abbee:16我是不會啦~我都用指標存成8bit的灰階, 再設調色盤為灰階 06/02 10:46
2F:→ Abbee:用SetPixel的效能非常差哦~建議用指標,但是指標很危險,一不 06/02 10:46
3F:→ Abbee:心就會溢位, 但溢位也不會常下異常, 會在存取之後的圖出現異 06/02 10:47
4F:→ Abbee:常, 這時程式就只能重開, 所以在寫的時候要測得很完整,確定 06/02 10:47
5F:→ Abbee:指標相關的語法沒寫錯 06/02 10:48
6F:→ Abbee:另外你用/3的方法, 也建議改為*0.333就好了,反正要取整數,這 06/02 10:49
7F:→ Abbee:樣效能會比較好哦 06/02 10:49
8F:→ proach:只有儲存不顯示嗎? 06/02 11:05
9F:→ Ethan96:感謝 06/04 23:21