作者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