iOS合成圖片

iOS進行合成方式,本人知道的又兩種:

1:使用UIImage直接合成

      方法:通過上下文將要合成的圖片都繪製到該上下文,然後得到合成的圖片

- (UIImage*)NTESATCOverlayWith:(UIImage*)overlayImage{

UIGraphicsBeginImageContext(self.size);

    

[self drawAtPoint:CGPointZero];

[overlayImage drawInRect:CGRectMake(0, 0, self.size.width, self.size.height) blendMode:kCGBlendModeNormal alpha:0.9999999];

    

UIImage *combinedImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return combinedImage;

}

2:通過UIView進行

     方法:將圖片都加載到一個UIView上,然後通過UIView生成圖片.

- (UIImage *) imageFromView:(UIView *)view {

// we need to size the graphics context according to the device scale

    CGFloat scale = [[UIScreen mainScreen] scale];  

    CGSize pageSize = view.frame.size;

    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

    CGContextRef context = CGBitmapContextCreate(NULL,

                                                 pageSize.width*scale,

                                                 pageSize.height*scale,

                                                 8,                     /* bits per component*/

                                                 pageSize.width*scale * 4,  /* bytes per row */

                                                 colorSpace,

                                                 kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrderDefault);

    

    CGColorSpaceRelease(colorSpace);

    CGContextClipToRect(context, CGRectMake(0, 0, pageSize.width*scale, pageSize.height*scale));

    

    CGContextScaleCTM(context, scale, scale);

    

    [view.layer renderInContext:context];

    

    

    CGImageRef image = CGBitmapContextCreateImage(context);

    CGContextRelease(context);

    

    UIImage *destImaage = [UIImage imageWithCGImage:image scale:1 orientation:UIImageOrientationDown | UIImageOrientationDownMirrored];

    CGImageRelease(image);

    return destImaage;

}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章