灰度化图像时,一定要根据原图像的像素格式,采取与之对应的灰度化方法,否则会出问题。
此函数灰度化原图像,并把灰度化后的图像保存在*pDesBitmap中( 注:有内存泄露,因为没有及时释放开辟的调色板空间,下面有修正版本)
void NewImageView::ToGray(Bitmap * pOrgBitmap,Bitmap **pDesBitmap)
{
int width=pOrgBitmap->GetWidth();
int height=pOrgBitmap->GetHeight();
switch(pOrgBitmap->GetPixelFormat()) //像素格式不同,灰度化处理方式也不同
{
case PixelFormat24bppRGB:
{
Rect rect(0,0,width,height);
BYTE byte;
BitmapData bitmapData_org,bitmapData_new;
Bitmap *pGrayImg=new Bitmap(width,height,PixelFormat8bppIndexed); // 建立带索引的位图Pixe