iOS 图片剪切

来源:互联网 发布:王菲 蔡依林 知乎 编辑:程序博客网 时间:2024/05/16 12:34

iOS 中对图片的剪切是经常用到,记录一下以防以后忘记:

- (UIImage *) cutImage:(UIImage *)image  WithRect:(CGRect )rect {

    CGImageRef imageRef =CGImageCreateWithImageInRect(image.CGImage, rect); //获得图片指定部分的像素位图

    UIImage *newImage = [UIImageimageWithCGImage:imageRef];

    CGImageRelease(imageRef); //记得释放,否则内存泄露

    

    return newImage;

}


参数注释:

image:待剪切的图片 rect:剪切图片的哪一部分,返回的图片就是剪切所得的图片。

需要注释的是rect:是像素单位,而uiimage 的size是苹果的点为单位,在retina设备上它们是不同的,比如在iphone 6s和iphone 6p,同一张图片,用像素表示的宽度是用uiimage的size.width表示的3倍,其他的设备是两倍。幸好苹果提供了通过点单位转换为像素单位的api:


CGFloat fixelW = CGImageGetWidth(image.CGImage);

CGFloat fixelH = CGImageGetHeight(image.CGImage);


然后就很方便获得需要剪切的位置了。


0 0
原创粉丝点击