图片旋转 iOS
来源:互联网 发布:网络优化培训费多少 编辑:程序博客网 时间:2024/04/24 06:02
首先我们封装一个类别,这样直接填入数据就可以了
代码如下:category
.h文件中
#import <UIKit/UIKit.h>
@interface UIImage (ImageRotate)
-(UIImage *)imageRotateIndegree:(float)degree;
@end
.m文件中
#import "UIImage+ImageRotate.h"
#import <QuartzCore/QuartzCore.h>
#import <Accelerate/Accelerate.h>
@implementation UIImage (ImageRotate)
//image->Context->image
-(UIImage *)imageRotateIndegree:(float)degree
{
size_t width = (size_t)(self.size.width*self.scale);
size_t height = (size_t)(self.size.height*self.scale);
size_t bytesPerRow = width * 4; //表明每行 图片数据字节
//透明度
CGImageAlphaInfo alphaInfo = kCGImageAlphaPremultipliedFirst; //alpha
/*参数1:NULL
参数2:宽度
参数3:高度
参数4:图片颜色深度
参数5:字节数
参数6:颜色空间
参数7: 图片的排序方式
*/
//配置上下文参数
CGContextRef bmcontext = CGBitmapContextCreate(NULL, width, height, 8, bytesPerRow, CGColorSpaceCreateDeviceRGB(), kCGBitmapByteOrderDefault | alphaInfo);
if (!bmcontext) {
return nil;
}
/*参数1:上下文参数
参数2:图片大小
参数3:所要处理的图片
*/
CGContextDrawImage(bmcontext, CGRectMake(0, 0, width, height), self.CGImage);
//旋转
UInt8 *data = (UInt8*)CGBitmapContextGetData(bmcontext);//获取数据
/*参数1:数据
参数2:高
参数3:宽
参数4:每行字节数
*/
vImage_Buffer src = {data,height,width,bytesPerRow};
//目标源
vImage_Buffer dest = {data,height,width,bytesPerRow};
Pixel_8888 bgColor = {0,0,0,0};
//图片旋转语句
/*
参数1:旋转的图片
参数2:旋转后的图片
参数3:可以忽略
参数4:旋转的角度
参数5:背景颜色
参数6: 填充颜色
*/
vImageRotate_ARGB8888(&src, &dest, NULL, degree, bgColor, kvImageBackgroundColorFill);
CGImageRef rotateImageref = CGBitmapContextCreateImage(bmcontext);
UIImage *rotateImage= [UIImage imageWithCGImage:rotateImageref scale:self.scale orientation:self.imageOrientation];
return rotateImage;
}
@end
在ViewController中
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self rotate];
}
-(void)rotate{
UIImage *image =[UIImage imageNamed:@"1"];
UIImage *imageNew =[image imageRotateIndegree:45 * 0.01745]; //其中45是旋转的度数,要转化成弧度,这个数值是3.14/180得到
UIImageWriteToSavedPhotosAlbum(imageNew, nil, nil, nil); // 将图片添加到相册中 不过别忘了添加 <key>NSPhotoLibraryUsageDescription</key> <string>App需要您的同意,才能访问相册</string> iOS 10如果访问必须添加否则闪退
}
- iOS图片旋转
- ios图片旋转
- ios图片旋转
- iOS 图片旋转
- IOS 图片自动旋转
- ios 图片缩放/旋转
- IOS处理图片旋转
- IOS 图片上传旋转
- iOS图片旋转问题
- 图片旋转 iOS
- iOS 图片旋转方法
- iOS 图片旋转方法
- iOS 图片旋转方法
- iOS 图片旋转方法
- iOS图片绕定点旋转
- ios 中图片uiimage旋转
- iOS 图片旋转小技巧
- iOS旋转图片锯齿问题
- poj1321 棋盘问题
- 轨迹数据库的索引建立
- atexit简述
- C - Magical GCD UVALive - 6582 (STL )
- Android动画之萌萌哒蜡烛吹蜡烛动画
- 图片旋转 iOS
- map下标操作
- 高斯消元
- 2017年2月20日实习日记
- 欢迎使用CSDN-markdown编辑器
- Butterknife源码
- Linux下informix安装及数据库迁移
- 第3章 XML语义检索
- Android项目之文件下载