是否有wxWidget办法做α混合操作,诸如位图与其他位图的RGB的α相乘,以生成新的图像(例如渲染相片作为抗混叠的圆形形状) 。的wxWidgets - 阿尔法混合
回答
虽然我没有完成alpha混合我自己,我相信wxGraphicContext是你以后。
http://docs.wxwidgets.org/stable/wx_wxgraphicscontext.html
我已经用我的Paint事件处理程序如下得到无闪烁绘制成图形上下文(在Win32):
void OnPaint(wxPaintEvent& e)
{
wxBufferedPaintDC dc(this);
wxGraphicsContext* gdc = wxGraphicsContext::Create(dc);
// you drawing code here
}
编辑:此电子邮件跟踪可能会提供一些更深入的了解:
http://www.nabble.com/Is-alpha-blending-implemented-when-using-DC's--td17183159.html
嗯,这不完全是。假设我有一个方形图像。 DC中的blit方法或wxGraphicsContext中的等效方法仅允许您呈现整个位图或矩形部分。我将如何能够渲染我的原始图像的圆形区域。 通常我会渲染一个圆形到目标缓冲区,确保它被预先清除到255 alpha。然后,我只是将alpha图像与缓冲区乘以alpha值与各个RGB组件进行混合。 我想我会手动执行此操作...我将发布实现。 – rui 2009-08-17 12:58:04
您是否确认绘图时wxGraphicsContext的DrawBitmap方法不注意Alpha通道?作为一个完整的旁观者,您还可以使用OpenGL绘制图像,因为wxWidgets具有OpenGL画布。 – 2009-08-17 14:14:30
这是我想要工作的代码: wxBitmap my_image = LoadSomePngWithNoAlpha(); wxBitmap缓冲区; wxMemoryDc dc = new wxMemoryDc(buffer); dc.SetBrush(wxCoulor(0,0,0,0)); dc.Clear(); dc.BlitBitmapAsCircle(bitmap,wxPoint(5,5),42.0); 为了完成这个最后一步,你通常会绘制一个正常的圆,并将alpha设置为255,然后如果我混合了与缓冲区呈直角的wxBitmap,则只会复制alpha == 255位,以便结束随着Png图像的圆形裁剪部分。 – rui 2009-08-17 14:58:35
- 1. SWT draw2d阿尔法混合
- 2. 德尔福:图像具有阿尔法混合功能
- 3. 获取像素颜色的阿尔法混合
- 4. D3D9阿尔法在表面上的混合
- 5. 阿尔法合成问题
- 6. 阿尔法共混物像素功能
- 7. C++ D3D9阿尔法与创作者混合更新
- 8. 的Xcode:阿尔法
- 9. Hadoop的2.X线:如何“阿尔法”是“阿尔法”
- 10. Unicode和:阿尔法:
- 11. UIToolBar与缩小阿尔法,要UIBarButtonItem具有阿尔法1
- 12. 将UIView与阿尔法1 UIView与阿尔法0.5顶部0
- 13. JLabel的阿尔法值
- 14. 混合标准PARAMS尔康
- 15. 混合函数/贝塞尔
- 16. 多个图像组合成用于以后绘画的单个图像,具有阿尔法混合
- 17. WindowManager.LayoutParams阿尔法问题
- 18. 反转阿尔法值java
- 19. Libgdx decalbatch颗粒阿尔法
- 20. UISlider阿尔法问题
- 21. Matplotlib bar3d变量阿尔法
- 22. 一定阿尔法范围
- 23. 阿尔法分量填充
- 24. 更改图片阿尔法
- 25. 无法使用阿尔托
- 26. Android:drawableLeft设置阿尔法
- 27. 从UIColor UIImage与阿尔法
- 28. JsARtoolkit阿尔法视频
- 29. 阿尔法布局让所有的孩子都有阿尔法?Android
- 30. 返回阿尔法的特定组合数字字符
我会很想知道如何做到这一点。 Atm我使用区域来获得扎实的alpha工作。 – Lodle 2009-08-16 12:39:01