2个回答
展开全部
CImage m_image;//m_image就是要处理的图像
int bit=m_Image.GetBPP();//获取每点像素的位数(8,24,32等),如果只处理24位图,则bit可直接赋值为24
int width=m_Image.GetWidth();//图像的宽度(单位为像素)
int height=m_Image.GetHeight();//图像的长度(单位为像素)
HBITMAP bitmap = m_Image.Detach();//
CBitmap *b_Image=CBitmap::FromHandle(bitmap);//获取CBitmap类的实例
DWORD totalbytes=width*height*bit/8;//要保存像素数据需要的总的字节数,24位图的话,每个像素需要3个字节
byte *lpBits=new byte[totalbytes];//字节型数组,每个单位存一个字节的数据
int bytes=b_Image->GetBitmapBits(totalbytes,lpBits);//把像素数据存到数组lpBits里,通过看bytes是否为0可以知道是否成功,为0则没有成功
//接下来遍历数组即可获取像素数据,因为24位图是3个字节构成一个像素,所以遍历时要注意间隔。
int bit=m_Image.GetBPP();//获取每点像素的位数(8,24,32等),如果只处理24位图,则bit可直接赋值为24
int width=m_Image.GetWidth();//图像的宽度(单位为像素)
int height=m_Image.GetHeight();//图像的长度(单位为像素)
HBITMAP bitmap = m_Image.Detach();//
CBitmap *b_Image=CBitmap::FromHandle(bitmap);//获取CBitmap类的实例
DWORD totalbytes=width*height*bit/8;//要保存像素数据需要的总的字节数,24位图的话,每个像素需要3个字节
byte *lpBits=new byte[totalbytes];//字节型数组,每个单位存一个字节的数据
int bytes=b_Image->GetBitmapBits(totalbytes,lpBits);//把像素数据存到数组lpBits里,通过看bytes是否为0可以知道是否成功,为0则没有成功
//接下来遍历数组即可获取像素数据,因为24位图是3个字节构成一个像素,所以遍历时要注意间隔。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询