GDI GDI+在绘图时使指定颜色透明的方法

2022-05-02 02:25:13   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《GDI GDI+在绘图时使指定颜色透明的方法》,欢迎阅读!
绘图,GDI,指定,透明,颜色
Skystalker 2011-04-30 01:53

今天学习GDIBITMAP贴图,用三种办法实现了指定颜色透明,总结如下 一、GDI下的方法,使用TransparentBlt,这是最麻烦的: CRect rc;

GetDlgItem(IDC_STATIC_1)->GetWindowRect(&rc); ScreenToClient(&rc);

CDC *pDC; pDC=GetDC(); CBitmap FootballBMP;

FootballBMP.LoadBitmap(IDB_BITMAP1); CDC ImageDC;

ImageDC.CreateCompatibleDC(pDC);

CBitmap *pOldImageBMP = ImageDC.SelectObject(&FootballBMP);

TransparentBlt(pDC->m_hDC, rc.left, rc.top, 300, 300, ImageDC.m_hDC, 0, 0, 300, 300, RGB(0xff,0xff,0));

二、把图片需要透明的地方直接做成透明的,这样用draw出来就是透明的。 二、利用CImage类,但这样做其他操作比如旋转就比较困难: CDC *pDC; pDC=GetDC(); CImage myimage;

myimage.Load(TEXT("Background.bmp"));

myimage.TransparentBlt(pDC->m_hDC, rc.left, rc.top, 300, 300, RGB(0xff,0xff,0)); 三、利用ImageAttributes::SetColorKey 方法,但据说速度比较慢: MSDN的例子有说明:

MSDN Library : Graphics and Multimedia / GDI+ / GDI+ Reference / Classed / Attributes / ImageAttributes Methods / SetColorKey

VOID Example_SetColorKey(HDC hdc) {

Graphics graphics(hdc);

// Create an Image object based on a BMP file. // The image has three horizontal stripes.

// The color of the top stripe has RGB components (90, 90, 20). // The color of the middle stripe has RGB components (150, 150, 150). // The color of the bottom stripe has RGB components (130, 130, 40). Image image(L "ColorKeyTest.bmp ");

Image
// Create an ImageAttributes object, and set its color key. ImageAttributes imAtt; imAtt.SetColorKey(

Color(100, 95, 30), // 要透明的颜色范围高位 如果把高位和低位颜色设成一样 比如都是 255 255 0就把黄色透明

Color(250, 245, 60),// 要透明的颜色范围低位 ColorAdjustTypeBitmap);

// Draw the image. Apply the color key.

// The bottom stripe of the image will be transparent because // 100 <= 130 <= 250 and // 95 <= 130 <= 245 and // 30 <= 40 <= 60. graphics.DrawImage( &image,

Rect(20, 20, image.GetWidth(), image.GetHeight()), // dest rect 0, 0, image.GetWidth(), image.GetHeight(), // source UnitPixel, &imAtt); }



rect

本文来源:https://www.wddqxz.cn/d24dfc8fa0116c175f0e489c.html

相关推荐