iOS UIImage的剪裁、合并实现

来源:互联网 发布:mac 之间airdrop怎么用 编辑:程序博客网 时间:2024/06/03 17:52

原理:1、创建一个输出大小的DC

     2、计算图片应该绘制的位置

     3、得到DC区域的UIImage


- (UIImage *)imageFromImage:(UIImage *)image inRect:(CGRect)rect

{

    CGImageRef sourceImageRef = [image CGImage];

    CGImageRef newImageRef = CGImageCreateWithImageInRect(sourceImageRef, rect);

    UIImage *newImage = [UIImage imageWithCGImage:newImageRef];

    CGImageRelease(newImageRef);

    return newImage;

}


//得到原图右边某区域

-(UIImage *)getImageFromImage:(UIImage *)image inRect:(CGRect)rect

{

    CGSize sz = [image size];

    UIGraphicsBeginImageContextWithOptions(CGSizeMake(rect.size.width, sz.height), NO, 0);

    [image drawAtPoint:CGPointMake(-(sz.width - rect.size.width), 0)];

    UIImage* im = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    

    return im;

}



//将同等高的2图 中部分区域合并到一图

-(UIImage *)combineImage:(UIImage*)image1 rectone:(CGRect)rc1 imageteo:(UIImage*)image2 recttwo:(CGRect)rc2//left

{

    UIGraphicsBeginImageContextWithOptions(CGSizeMake(DEFAULT_PIC_WIDTH, DEFAULT_PIC_HEIGHT), NO, 0);

    [image1 drawAtPoint:CGPointMake(-(rc1.origin.x), 0)];

    [image2 drawAtPoint:CGPointMake(rc1.size.width, 0)];

    UIImage* image = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndPDFContext();

    

    return image;

}

0 0
原创粉丝点击