image叠加(UIGraphicsBeginImageContext)

来源:互联网 发布:js 对象转数组 编辑:程序博客网 时间:2024/04/30 03:17

-(UIImage*)image2{

    //比如说我们现在有两张图片需要合并,是把一个滑稽的帽子放到一个人的头上。这里是两个UIImage

    UIImage *radioImage = [UIImageimageNamed:@"radio"];//kuang

    UIImage *switchImage = [UIImageimageNamed:@"switch"];//duigou

   //这种情况下我们需要最终合成的图片大小是和radio一致的,让我们获得我们需要的最终图片的大小:

    CGSize finalSize = [radioImagesize];

   //然后再搞到switch的大小,可能比radio要小得多:

    CGSize hatSize = [hatImage size];

    //现在我们需要创建一个graphics context来画我们的东西:

    UIGraphicsBeginImageContext(finalSize);

   //graphics context就像一张能让我们画上任何东西的纸。我们要做的第一件事就是把radio画上去:

    [radioImage drawInRect:CGRectMake(0,0,finalSize.width,finalSize.height)];

   //然后再把switch画在合适的位置:

    [switchImage drawInRect:CGRectMake(2,2,hatSize.width,hatSize.height)];

    //接着通过下面的语句创建新的UIImage:

    UIImage *newImage =UIGraphicsGetImageFromCurrentImageContext();

    //最后,我们必须得清理并关闭这个我们再也不需要的context

    UIGraphicsEndImageContext();

    return newImage;

}

0 0