iOS 图片剪切
2016-05-26 22:47
387 查看
iOS 中对图片的剪切是经常用到,记录一下以防以后忘记:
- (UIImage *) cutImage:(UIImage *)image WithRect:(CGRect )rect {
CGImageRef imageRef =
CGImageCreateWithImageInRect(image.CGImage, rect);
//获得图片指定部分的像素位图
UIImage *newImage = [UIImage
imageWithCGImage: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);
然后就很方便获得需要剪切的位置了。
- (UIImage *) cutImage:(UIImage *)image WithRect:(CGRect )rect {
CGImageRef imageRef =
CGImageCreateWithImageInRect(image.CGImage, rect);
//获得图片指定部分的像素位图
UIImage *newImage = [UIImage
imageWithCGImage: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);
然后就很方便获得需要剪切的位置了。
相关文章推荐
- 解决iOS上传图片后,图片方向错误的问题
- iOS开发中使用平率很高的宏定义
- ios时间戳和当前时间转换
- iOS 四舍五入
- iOS开发-进阶:沙盒操作与机制
- iOS开发:关键字说明
- 转发:招聘一个靠谱的 iOS
- iOS开发:关于屏幕旋转问题
- iOS简单、方便、好用的HZSigmentView
- iOS NSMutableAttributedString/NSAttributedString 富文本设置
- iOS Archive 后进入other items,generic XCode Archive
- iOS 获取一周的每一天
- iOS-OC-获取WiFi信息
- ios NSString 截取汉字 数字 字母
- iOS图书动画
- ios新特征 ARC详解
- iOS8 下定位失败问题
- iOS使用NSMutableAttributedString 实现富文本(不同颜色字体、下划线等)
- ios基础知识整理2
- 掌握iOS8中的动态文本