合并两个图像

时间:2014-05-04 15:07:36

标签: ios objective-c

我试图合并两个UI图像并创建一个名为mainImage的新图像。其中一个图像是实心背景,backgroundImage,而另一个是由路径,brushimage创建的曲线。对于我现在所拥有的背景图像,但曲线图像不会被拍摄。第一种方法使用路径为曲线图像创建图像。

- (void)drawBrezierPath:(UIBezierPath *)thePath onto:(UIImage *)image {
    UIGraphicsBeginImageContextWithOptions(self.bounds.size, YES, 0.0);
    [image drawAtPoint:CGPointZero];
    [self.brushColor setStroke];
    [thePath stroke];
    image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
}

这个创建背景:

- (void)drawBackground
{
    UIGraphicsBeginImageContextWithOptions(self.bounds.size, YES, 0.0);
    UIBezierPath *rectpath = [UIBezierPath bezierPathWithRect:self.bounds];
    [self.backgroundColor setFill];
    [rectpath fill];
    backgroundImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
}

然后将它们合并使用:

- (void)drawMainImage {
    UIGraphicsBeginImageContext(self.frame.size);
    //[self drawBackground];
    [backgroundImage drawInRect:self.frame];
    [brushImage drawInRect:self.frame];
    mainImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

}

但只有背景出现了。当我注释掉绘制背景的线时,会显示该线,但在绘制背景时它不会绘制。当我切换绘制background / brushimage的顺序时,它并没有产生影响,而brushImage仍然没有显示出来。

谢谢!

1 个答案:

答案 0 :(得分:0)

你在第三个函数中合并了brushImage和BackgroundImage,但你在第一个函数中创建了“image”而不是“brushImage”,你不应该把它设置为“brushImage”吗?