Objective c 不包括A";“油漆桶”;在图像上填充
我正在构建一个iPhone应用程序,它需要以非常特定的方式构建一些图像。这个问题很难解释,所以下面是我试图实现的一个图表。基本上,我想在UIImage(将是PNG)上“绘制桶”填充。我想这里的“油漆桶”一词等同于一种颜色 在那之后,我想创建一个遮罩对象(它将是可更新的,可能由多个形状组成),然后当我对原始图像应用另一个着色/绘制桶时,构建遮罩覆盖的区域将不受影响。这基本上就像在一个物体上缠上胶带,画上它,然后取下胶带。正如我所承诺的,这里有一张我所追求的图表。需要注意的是,尽管我在这里使用了一个十字,但最终模式可能会非常复杂,必须在PNG中,而不是在代码中创建。感谢您可能提供的任何帮助 在白色背景上创建一个黑色的十字架(或任何你想要的形状)。使用Objective c 不包括A";“油漆桶”;在图像上填充,objective-c,ios,drawing,core-graphics,masking,Objective C,Ios,Drawing,Core Graphics,Masking,我正在构建一个iPhone应用程序,它需要以非常特定的方式构建一些图像。这个问题很难解释,所以下面是我试图实现的一个图表。基本上,我想在UIImage(将是PNG)上“绘制桶”填充。我想这里的“油漆桶”一词等同于一种颜色 在那之后,我想创建一个遮罩对象(它将是可更新的,可能由多个形状组成),然后当我对原始图像应用另一个着色/绘制桶时,构建遮罩覆盖的区域将不受影响。这基本上就像在一个物体上缠上胶带,画上它,然后取下胶带。正如我所承诺的,这里有一张我所追求的图表。需要注意的是,尽管我在这里使用了一个
CGContextClipToMask
将其应用于图形上下文。然后使用CGContextFillRect
用蓝色填充上下文的边界。像这样的东西应该可以做到:
CGRect bounds = your context bounds;
CGContextRef gc = your context;
UIImage *cross = [UIImage imageNamed:@"cross"];
CGContextSaveGState(gc); {
CGContextClipToMask(gc, bounds, cross.CGImage);
CGContextSetColorWithColor(gc, [UIColor blueColor].CGColor);
CGContextFillRect(gc, bounds);
} CGContextRestoreGState(gc);
谢谢你的回复@rob。对不起,我对这些C语句是一个相当陌生的人(最近一直在制作普通的“应用程序”)。要在屏幕上实际渲染,下一步是什么?此外,使用此方法,是否也可以添加多个遮罩(因此可能是一个十字、圆圈等)?此外,行CGContextSetColorWithColor(gc[UIColor blueColor].CGColor);正在导致编译错误(“未找到体系结构i386的ld:symbol。clang:error:linker命令失败,退出代码为1”)。我用“CGContextSetRGBFillColor”替换了它,但没有显示任何内容。而且听起来你需要学习一两个Quartz(核心图形)教程。谢谢你的帮助,罗布。是的,最好自己解决这个问题,而不是靠施舍过活。我只是对在屏幕上实际呈现代码感到好奇。我将围绕代码展开工作,以便自己更全面地理解它:)