Xcode - CGContext - 橡皮擦绘画应用程序" transparant"橡皮擦为背景

时间:2014-06-21 09:22:07

标签: xcode cgcontext

我有一个小问题。

我正在为iPhone制作绘画/绘图应用程序。在我的应用程序中,您可以使用背景和照片进行绘制。但我无法找到橡皮擦的解决方案。因为大多数橡皮擦样品都是白色涂料。因此,在非白色背景上,它只是制作白色"线"。任何(一种)透明橡皮擦的解决方案,只能擦除画线"线条#34;而不是背景?

Thnx的帮助!

1 个答案:

答案 0 :(得分:0)

除了使用白色涂料的kCGBlendModeNormal混合模式绘制外,您还需要在橡皮擦打开时使用kCGBlendModeDestinationOut进行绘制。 (这假设背景位于绘图层后面的图层中。)

例如:

<pre>
if (eraser == TRUE) // Erase to show background
{
   CGContextSetBlendMode(UIGraphicsGetCurrentContext(), kCGBlendModeDestinationOut);
}
else // Draw with color
{
   CGContextSetBlendMode(UIGraphicsGetCurrentContext(),kCGBlendModeNormal);
}
</pre>

您可能还希望查看此CGBlendMode参考,该参考显示不同混合类型的效果,包括解释,最初发布于:http://ericasadun.com/CookbookTest/Blending.pdf

文档的替代链接:http://www.docdroid.net/xt0b/blending-kcgblendmode.pdf.html