合并两个UIImages

11

我有imageA(从用户的iPhone相机中获取)和imageB,一个带有愚蠢边框(例如)和大量透明α空间的图像。

我想要的是将这两个图像合并,将imageB放在imageA上方,然后将它们保存为imageC以供其他用途。

有没有办法做到这一点?

谢谢

我已经完成了这些

-(void)merge
{
    CGSize size = CGSizeMake(320, 480);
    UIGraphicsBeginImageContext(size);

    CGPoint thumbPoint = CGPointMake(0,0);
    UIImage *imageA = imageView.image;
    [imageA drawAtPoint:thumbPoint];

    UIImage* starred = [UIImage imageNamed:@"imageB.png"];

    CGPoint starredPoint = CGPointMake(0, 0);
    [starred drawAtPoint:starredPoint];

    UIImage *imageC = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    imageView.image = imageC;
}
我看不到/不知道我在这里做错了什么。

喜欢这个的简洁。 - Eric Brotto
2个回答

3

那段代码看起来正确(尽管我建议将其转换为使用创建的CGBitmapContext以实现线程安全),但是imageB应该是JPEG格式吗?JPEG不支持透明度,因此为了使混合正常工作,它应该是PNG格式。


本来应该是PNG格式的,不过没有任何区别。 - Sam Jarman
啊,原来是代码位置的问题——发现imageView.image为空了。 - Sam Jarman

3
请注意,如需支持Retina,您应使用:UIGraphicsBeginImageContextWithOptions(size, YES, 0); // 0表示让iOS自动处理缩放

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接