|
如 CBitmap m_bitmap; //建立一个位图对象 m_bitmap.DeleteObject(); //调用CGdiObject的DeleteObject函数将以前的BITMAP对象删除。 m_bitmap.LoadBitmap(nBitmapID);//载入指定ID的图象资源nBitmapID是资源的ID。 。 。 。 。 { BITMAP bm; m_bitmap.GetObject(sizeof(BITMAP),&bm); CDC *pDC=new CDC; CClientDC dc(&m_image); //将客户区定为我们的PICTURE控件。 pDC->CreateCompatibleDC(&dc); pDC->SelectObject(m_bitmap); //将图片伸缩成我们设定的大小。 dc.StretchBlt(0,0,320,240,pDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY); //如果不准备进行缩放可以用BITBLT。 //dc.BitBlt(0,0,bm.bmWidth,bm.bmHeight,pDC,0,0,SRCCOPY); 这样才能使他显示变亮或变暗 delete pDC; } |
|
|
使用api:AlphaBlend
|
|
|
|
对图像中各个像素的三个原色灰度分别叠加一个灰度值,引起原色饱和度的改变,以此来改变图像的亮度。叠加值为正,图像变亮,叠加值为负,图像变暗
dst_r = max(0,min(255,src_r + nLight)); dst_g = max(0,min(255,src_g + nLight)); dst_b = max(0,min(255,src_b + nLight)); |
|
|
用hsl模式显示
|
|