GDI+学习记录之获得图片每个像素

来源:互联网 发布:非洲网络 编辑:程序博客网 时间:2024/06/05 20:45

使用Bitmap对象加载位图,通过位图对象的GetPixel()方法和SetPixel()方法设置位图每个像素点的颜色;

Graphics graphics(GetDC()->m_hDC);Bitmap photoFrame(L"PhotoFrame.bmp");//装载图片资源Bitmap photo(L"photo.bmp");int iWidth=photoFrame.GetWidth();//获得图片宽度和高度int iHeight=photoFrame.GetHeight();Color color,colorTemp;//声明颜色对象int iAlpha=255;//设置透明度(0-255)0表示完全透明,255表示不透明for(int iColumn=0;iColumn<iWidth;iColumn++){  for(int iRow=0;iRow<iHeight;iRow++)  {    photoFrame.GetPixel(iColumn,iRow,&color);//获得当前像素点的颜色    if(255==color.GetRed()       && 255==color.GetGreen()       && 255==color.GetBlue())//如果为白色就完全透明    {       iAlpha=0;    }    else    {       iAlpha=255;    }    colorTemp.SetValue(color.MakeARGB(iAlpha,color.GetRed(),color.GetGreen(),color.GetBlue()));    photoFrame.SetPixel(iColumn,iRow,colorTemp);//设置当前像素点的颜色  }}graphics.DrawImage(&photoFrame,0,0,iWidth,iHeight);//开始在指定位置绘图graphics.DrawImage(&photo,30,30,photo.GetWidth(),photo.GetHeight());
0 0
原创粉丝点击