大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍iOS中如何实现imageView任意角度旋转,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
成都创新互联是一家专注于成都网站建设、网站设计与策划设计,达川网站建设哪家好?成都创新互联做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:达川等地区。达川做网站价格咨询:18980820575
如果需要实现对imageView实现一定角度的旋转,具体步骤是:
1.将image转成context。
2.对context进行一定角度的旋转。
3.将旋转后的context 转化成image。
经过这三个步骤,我们就能够实现将图片真正的做到旋转。
好了,直接上代码:
#import"UIImage+RotateImageTool.h" #import#import @implementationUIImage (RotateImageTool) -(UIImage*)rotateImageWithDegree:(CGFloat)degree{ //将image转化成context //获取图片像素的宽和高 size_t width =self.size.width*self.scale; size_t height =self.size.height*self.scale; //颜色通道为8因为0-255经过了8个颜色通道的变化 //每一行图片的字节数因为我们采用的是ARGB/RGBA所以字节数为width * 4 size_t bytesPerRow =width *4; //图片的透明度通道 CGImageAlphaInfo info =kCGImageAlphaPremultipliedFirst; //配置context的参数: CGContextRef context =CGBitmapContextCreate(nil, width, height,8, bytesPerRow,CGColorSpaceCreateDeviceRGB(),kCGBitmapByteOrderDefault|info); if(!context) { return nil; } //将图片渲染到图形上下文中 CGContextDrawImage(context,CGRectMake(0,0, width, height),self.CGImage); uint8_t* data = (uint8_t*)CGBitmapContextGetData(context); //旋转欠的数据 vImage_Buffer src = { data,height,width,bytesPerRow}; //旋转后的数据 vImage_Buffer dest= { data,height,width,bytesPerRow}; //背景颜色 Pixel_8888 backColor = {0,0,0,0}; //填充颜色 vImage_Flags flags = kvImageBackgroundColorFill; //旋转context vImageRotate_ARGB8888(&src, &dest,nil, degree *M_PI/180.f, backColor, flags); //将conetxt转换成image CGImageRef imageRef =CGBitmapContextCreateImage(context); UIImage* rotateImage =[UIImageimageWithCGImage:imageRefscale:self.scaleorientation:self.imageOrientation]; returnrotateImage; }
代码中有详细的注释,在这里我就不过多的解释了。感兴趣的可以到github上面下载哦。
下载地址:github.com/15221532825/ImageTool (本地下载)
附:iOS ImageView的Image自适应缩放显示全套处理方法
// retina屏幕图片显示问题 [_detailImageView setContentScaleFactor:[[UIScreen mainScreen] scale]]; // 不规则图片显示 _detailImageView.contentMode = UIViewContentModeScaleAspectFill; _detailImageView.autoresizingMask = UIViewAutoresizingFlexibleHeight; // 图片大于或小于显示区域 _detailImageView.clipsToBounds = YES;
以上是“iOS中如何实现imageView任意角度旋转”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!