iOS截取图片的一部分
2016-12-08 08:30
239 查看
UIImage
* imgeee = [UIImage
imageWithCGImage:CGImageCreateWithImageInRect([self.currentImageForCamera.image
CGImage],
CGRectMake(0,
0,
100,
100))];
- (UIImage
*)getPartOfImage:(UIImage
*)img rect:(CGRect)partRect{
CGImageRef imageRef = img.CGImage;
CGImageRef imagePartRef =
CGImageCreateWithImageInRect(imageRef, partRect);
UIImage *retImg = [UIImage
imageWithCGImage:imagePartRef];
CGImageRelease(imagePartRef);
return retImg;
}
#注释·这种模式会让图片旋转90°。
(UIImage )fixOrientation:(UIImage )aImage {
if (aImage.imageOrientation == UIImageOrientationUp) return aImage;
CGAffineTransform transform = CGAffineTransformIdentity;
switch (aImage.imageOrientation) { case UIImageOrientationDown: case UIImageOrientationDownMirrored: transform = CGAffineTransformTranslate(transform, aImage.size.width, aImage.size.height); transform = CGAffineTransformRotate(transform, M_PI); break;
[/code]
}
switch (aImage.imageOrientation) { case UIImageOrientationUpMirrored: case UIImageOrientationDownMirrored: transform = CGAffineTransformTranslate(transform, aImage.size.width, 0); transform = CGAffineTransformScale(transform, -1, 1); break;
[/code]
}
CGContextRef ctx = CGBitmapContextCreate(NULL, aImage.size.width, aImage.size.height, CGImageGetBitsPerComponent(aImage.CGImage), 0, CGImageGetColorSpace(aImage.CGImage), CGImageGetBitmapInfo(aImage.CGImage)); CGContextConcatCTM(ctx, transform); switch (aImage.imageOrientation)
{ case UIImageOrientationLeft: case UIImageOrientationLeftMirrored: case UIImageOrientationRight: case UIImageOrientationRightMirrored:
[/code]
}
CGImageRef cgimg = CGBitmapContextCreateImage(ctx); UIImage *img = [UIImage imageWithCGImage:cgimg]; CGContextRelease(ctx); CGImageRelease(cgimg); return img;
}
* imgeee = [UIImage
imageWithCGImage:CGImageCreateWithImageInRect([self.currentImageForCamera.image
CGImage],
CGRectMake(0,
0,
100,
100))];
- (UIImage
*)getPartOfImage:(UIImage
*)img rect:(CGRect)partRect{
CGImageRef imageRef = img.CGImage;
CGImageRef imagePartRef =
CGImageCreateWithImageInRect(imageRef, partRect);
UIImage *retImg = [UIImage
imageWithCGImage:imagePartRef];
CGImageRelease(imagePartRef);
return retImg;
}
#注释·这种模式会让图片旋转90°。
(UIImage )fixOrientation:(UIImage )aImage {
if (aImage.imageOrientation == UIImageOrientationUp) return aImage;
CGAffineTransform transform = CGAffineTransformIdentity;
switch (aImage.imageOrientation) { case UIImageOrientationDown: case UIImageOrientationDownMirrored: transform = CGAffineTransformTranslate(transform, aImage.size.width, aImage.size.height); transform = CGAffineTransformRotate(transform, M_PI); break;
case UIImageOrientationLeft: case UIImageOrientationLeftMirrored: transform = CGAffineTransformTranslate(transform, aImage.size.width, 0); transform = CGAffineTransformRotate(transform, M_PI_2); break; case UIImageOrientationRight: case UIImageOrientationRightMirrored: transform = CGAffineTransformTranslate(transform, 0, aImage.size.height); transform = CGAffineTransformRotate(transform, -M_PI_2); break; default: break;
[/code]
}
switch (aImage.imageOrientation) { case UIImageOrientationUpMirrored: case UIImageOrientationDownMirrored: transform = CGAffineTransformTranslate(transform, aImage.size.width, 0); transform = CGAffineTransformScale(transform, -1, 1); break;
case UIImageOrientationLeftMirrored: case UIImageOrientationRightMirrored: transform = CGAffineTransformTranslate(transform, aImage.size.height, 0); transform = CGAffineTransformScale(transform, -1, 1); break; default: break;
[/code]
}
CGContextRef ctx = CGBitmapContextCreate(NULL, aImage.size.width, aImage.size.height, CGImageGetBitsPerComponent(aImage.CGImage), 0, CGImageGetColorSpace(aImage.CGImage), CGImageGetBitmapInfo(aImage.CGImage)); CGContextConcatCTM(ctx, transform); switch (aImage.imageOrientation)
{ case UIImageOrientationLeft: case UIImageOrientationLeftMirrored: case UIImageOrientationRight: case UIImageOrientationRightMirrored:
CGContextDrawImage(ctx, CGRectMake(0,0,aImage.size.height,aImage.size.width), aImage.CGImage); break; default: CGContextDrawImage(ctx, CGRectMake(0,0,aImage.size.width,aImage.size.height), aImage.CGImage); break;
[/code]
}
CGImageRef cgimg = CGBitmapContextCreateImage(ctx); UIImage *img = [UIImage imageWithCGImage:cgimg]; CGContextRelease(ctx); CGImageRelease(cgimg); return img;
}
相关文章推荐
- iOS相机相册使用权限
- iOS 单例模式
- Git 【git merge】
- 新MacBook Pro再出问题:频繁关机/死机_广州达内IOS培训
- iPhone 6s电池故障出厂时间范围矿大_广州达内IOS培训
- 苹果回应自燃事件:系外力导致_广州达内IOS培训
- iOS 开发 指纹识别解锁详解
- iOS 开发 二维码扫描详解
- 1小时学会:最简单的iOS直播推流(七)h264/aac 硬编码
- iOS中assign,copy,retain之间的区别以及weak和strong的区别
- ios应用国际化
- iOS改变控件形状常用方法性能分析
- iOS9AdaptationTips
- iOS 10 推送通知 UserNotifications widget
- iOS 创建单例
- iOS 解决.a 静态库冲突问题
- iOS 出现too many errors emitted, stopping now解决办法
- AVFoundation拍摄照片(iOS10新框架)
- ios runtime的一些知识
- iOS JS交互,相互调用