我在Gdiplus :: image中有png。我可以使用以下代码渲染图像。
SELECT DISTINCT (CITY)
FROM STATION
WHERE NOT regexp_like(lower(CITY),'^[aeiou].*[aeiou]$');
现在如何绘制具有透明颜色的png,以便某种颜色的所有像素(例如:Gdiplus::Graphics graphics(dc);
graphics.DrawImage(m_pBitmap, 0, 0);
)都透明显示,并且您可以看到使用Gdiplus的透明像素的背景。
我可以获取任何示例代码吗?
答案 0 :(得分:1)
使用ImageAttributes
和SetColorKey
Gdiplus::Bitmap bm(L"transparent.png", TRUE);
if(bm.GetLastStatus() == Gdiplus::Status::Ok)
{
Gdiplus::Graphics gr(hdc);
Gdiplus::ImageAttributes attr;
attr.SetColorKey(Gdiplus::Color(255, 255, 255), Gdiplus::Color(255, 255, 255),
Gdiplus::ColorAdjustTypeBitmap);
gr.DrawImage(
&bm,
Gdiplus::Rect(0, 0, bm.GetWidth(), bm.GetHeight()),
0, 0, bm.GetWidth(), bm.GetHeight(),
Gdiplus::UnitPixel,
&attr);
}
else
MessageBox(0, L"error", 0, 0);