我正在尝试为iPad绘制一幅简单的绘图应用程序,您可以在图片上绘制,而我使用CGContext的东西来做,但我最初计划处理擦除的方式是只是画白色的东西...除了我今天才意识到,当你在绘制另一张图像时它不起作用,因为当你“擦除”时,你也会“擦除”背景图像。使用CGContext绘图后擦除
有什么方法可以支持实际的擦除?
谢谢!
我正在尝试为iPad绘制一幅简单的绘图应用程序,您可以在图片上绘制,而我使用CGContext的东西来做,但我最初计划处理擦除的方式是只是画白色的东西...除了我今天才意识到,当你在绘制另一张图像时它不起作用,因为当你“擦除”时,你也会“擦除”背景图像。使用CGContext绘图后擦除
有什么方法可以支持实际的擦除?
谢谢!
在图像上方的图层中显示用户的图形。然后擦除就像在绘图层上绘制透明色块一样简单,以便让其下方的图像像素显示出来。
我还需要擦除功能。基于@杰里米的回答,这里是我的工作:
CGContextRef cgref = UIGraphicsGetCurrentContext();
if(erase == TRUE) // Erase to show background
{
CGContextSetBlendMode(cgref, kCGBlendModeClear);
}
else // Draw with color
{
CGContextSetBlendMode(cgref, kCGBlendModeNormal);
}
你是我的英雄,非常感谢你给予这样一个简单的解决方案! – Bek 2012-11-22 11:08:40
首先我要通过Ray Wenderlich的教程来创建一个简单的绘图应用程序。一切都适用于它,但是当我将混合模式更改为kCGBlendModeClear时,它所做的一切就是擦掉整个画布,一旦触摸结束被调用。有什么想法吗? – 2014-05-01 22:14:15
非常好,但过于冗长。你可以用同样的方法做同样的事情:'CGContextSetBlendMode(UIGraphicsGetCurrentContext(),erase?kCGBlendModeClear:kCGBlendModeNormal);' – SaltyNuts 2014-10-30 17:16:17
你如何绘制一个透明的补丁?我使用了'CGContextSetRGBStrokeColor',其alpha值为0.0,但似乎不起作用。 – Roberto 2011-06-10 00:03:57
玩合成模式(例如复制而不是SourceIn),并考虑填充以及抚摸。 – 2011-06-10 01:04:31
查看源代码https://github.com/yusenhan/Smooth-Line-查看 – 2012-12-10 13:49:30