32位图像数据要怎么转换成8位数据? 我用TIFF LIB把数据取出来以后,因为图像是32位RGB图像,所以我想在处理之前把图像转换成0~255,但是我不知道32位图像数据的组织形式,之前以为跟八位和十六位图像数据一样,值域是0~2^32-1,但是转换以后发现数据对不上,请问32位图像数据是怎么回事呢?万分感谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把高位去掉,和24位转8位的算法一样如何将真彩色图转换为各种灰度图http://www.cppblog.com/windcsn/archive/2010/04/23/10608.html 我想楼主的意思并不是要转换为8位图像。而是搞不清ARGB格式的图像的内存布局。 32位的话应该是ARGB,其中A(alpha)是指像素的透明度,其他的就不用解释了吧 可能我没有把问题说清楚,我说的32位数据不是指一个像素占32位,而是指图像的位深度是32位,也就是一个RGB像素占12个字节. 楼主讲的可能是GDI+中的这种格式把,PixelFormat48bppRGB,这种格式真的还是很少接触,也不晓得如何创建,不知道能不能用GdipBitmapLockBits进行自动转换。 我是直接用TIFF LIB读取图像数据获取的,分配内存是根据图像的大小以及图像的位深度来分配的.因为我要把图像进行显示,所以要把数据转换成0~255,我原以为是像位深度为16的图像一样,直接把(0~4294967295)归到(0~255)就可以了,但是后来发现这样是不对的. 不是,我是读取位深度为32位的TIFF文件时碰到的. 我不知道怎么上传文件,可以在Photoshop里面制作一个32位的RGB图像. 一个像素就是32位,其中 RGB各占8位,共计24位,透明通道占8位,所以共计32位。它的取值方法是:将每个点的值分别进行取余和整除,就可以分分别得到 ARGB 的值。如果按你的理解,每个像素32位,则是4个字节,(每个字节占8位),不是12个字节。 我说的32位是指图像的位深度,不是指一个像素占的位数,在Photoshop里面是可以做出这种图像的. 一个像素就是32位,其中 RGB各占8位,共计24位,透明通道占8位,所以共计32位。它的取值方法是:将每个点的值分别进行取余和整除,就可以分分别得到 ARGB 的值。如果按你的理解,每个像素32位,则是4个字节,(每个字节占8位),不是12个字节。 就是一个颜色合并,大致R 111*****G 111*****B 11******合并为一个颜色R 11100000G 11100000B 1100000 我说是32位是位深度,不是一个像素32位。谁能告诉我怎么不上传文件,我想把图像文件上传上来。。或者加我MSN:[email protected] 每个像素32*3位。。每个通道数据占32位。。我们平时用的图像是每个通道占8位,还有16位。在Photoshop里面图像位深度的设置的。 位深度32位是指每个通道占32位,一个像素占32位的话,如果图像是CMYK模式的图像,则每个通道占8位,如果是RGB图像的话,则就是带alpha通道的RGB图像,每个通道占8位。 我营业有疑问,32位真彩色转为8位灰度图公式怎么计算?24位转为8为的公式是;Y=R*0.299+G*0.587+B*0.114,具体代码是 :for(i=0;i<len;i++){ for(j=0;j<with;j++) { pDes=0.114*pSrc[i][3*j]+0.587*pSrc[i][3*j+1]+0.299pSrc[i][3*j2]; }}但是,对于32位转为24位公式该怎么改呢? wince下隐藏滚动条 _tfgets函数到底在哪个头文件呢? 动态库与EXE 中 virtual BOOL InitInstance()区别? 急急急急急 Unicode问题 设置f1为热键出现的问题!高手进,在线等!!!!! 又是一个预编译的问题,会者不难 奇怪的问题! 怎样将十进制数转换成十六进制数? 如何实现MDI程序中,每一个子窗体的形式都不一样,高手请进 Win2000的开机画面可换掉吗? 编写的程序别人没法运行怎么办? Edit显示文本与删除文本是什么函数?
http://www.cppblog.com/windcsn/archive/2010/04/23/10608.html
G 111*****
B 11******合并为一个颜色
R 11100000
G 11100000
B 1100000
谁能告诉我怎么不上传文件,我想把图像文件上传上来。。
或者加我MSN:[email protected]
for(i=0;i<len;i++)
{
for(j=0;j<with;j++)
{
pDes=0.114*pSrc[i][3*j]+0.587*pSrc[i][3*j+1]+0.299pSrc[i][3*j2];
}
}
但是,对于32位转为24位公式该怎么改呢?