释放双眼,带上耳机,听听看~!
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);
然后就很方便获得需要剪切的位置了。