【问题标题】:Xcode - CGContext - Eraser painting app "transparant" eraser for backgroundXcode - CGContext - 用于背景的橡皮擦绘画应用程序“透明”橡皮擦
【发布时间】:2014-06-21 09:22:07
【问题描述】:

我有一个小问题。

我正在为 iPhone 制作一个绘画/绘图应用程序。在我的应用程序中,您可以绘制背景和照片。但我找不到橡皮擦的解决方案。因为大多数橡皮擦样品都是白色油漆。因此,在非白色背景上,它只是制作白色“线条”。对于(某种)透明橡皮擦的任何解决方案,它只会擦除绘制“线条”而不是背景?

感谢您的帮助!

【问题讨论】:

    标签: xcode cgcontext


    【解决方案1】:

    不要使用 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

    【讨论】:

      猜你喜欢
      • 2014-05-14
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      • 2011-03-27
      • 1970-01-01
      • 2012-03-02
      • 2013-10-19
      • 2015-08-01
      相关资源
      最近更新 更多