我该如何使用GDI +绘制特定的透明颜色?
我尝试了以下代码:
m_image = new Gdiplus::Bitmap( img_w, img_h );
m_graphic = Gdiplus::Graphics::FromImage( m_image );
Gdiplus::Color c( 0, 255, 0, 0 ); // ARGB = 0x00FF0000
m_graphic->Clear( c );
m_image->GetPixel( 0, 0, &c ); //ARGB = 0x00000000 ?!
图像的透明部分的颜色始终为黑色。我该如何更改?
答案 0 :(得分:2)
Graphics :: Clear方法将Graphics对象清除为指定的颜色。 我已经尝试过您的代码:
Image m_image(L"C:\\Users\\strives\\Desktop\\apple.jpg");
Graphics *m_graphic = Graphics::FromImage(&m_image);
Gdiplus::Color c(0, 255, 0, 0); // ARGB = 0x00FF0000
m_graphic->Clear(c);
graphics.DrawImage(&m_image, 30, 20);
delete m_graphic;
最后一张照片是这样的。
我认为问题很明显。如果使用清除功能并将颜色设置为(0,255,0,0)(默认为黑色),则打印区域必须为黑色,并且下面的GetPixel函数捕获的像素的颜色必须为黑色。