如何繪製wxImage或wxBitmap到具有不透明度的DC?它看起來不像標準的DC或wxGraphicsContext。WxWidgets繪製不透明度的位圖
BeginLayer/EndLayer尚未在wxGraphicsContext中實現,這本來就是一個解決方案。 GDI +似乎不支持圖層,所以添加這個並不重要。
唯一的解決方案似乎是以編程方式逐個像素地改變alpha通道?
如何繪製wxImage或wxBitmap到具有不透明度的DC?它看起來不像標準的DC或wxGraphicsContext。WxWidgets繪製不透明度的位圖
BeginLayer/EndLayer尚未在wxGraphicsContext中實現,這本來就是一個解決方案。 GDI +似乎不支持圖層,所以添加這個並不重要。
唯一的解決方案似乎是以編程方式逐個像素地改變alpha通道?
void YourCustomWindow::OnPaint(wxPaintEvent& event) {
wxPaintDC dc(this);
wxImage image(width, height);
image.InitAlpha();
unsigned char* imgdata = img.GetData();
unsigned char* imgalpha = img.GetAlpha();
// manipulate raw memory buffers to populate
// them with whatever image you like.
// Putting zeros everywhere will create a fully
// transparent image.
// almost done, but not quite...
// wxDC can only draw wxBitmaps, not wxImage,
// so one last step is required
//
wxBitmap bmp(image);
dc.DrawBitmap(bmp, 0, 0);
}
這適用於版本2.8.x的問題,還沒有試過3.0 –
對不起,我錯過了你的答案。祝一切順利。 – hplbsh
希望我能幫助,但我有我自己的wxWidgets的處理不透明的...... –