iOS 如何获取旋转之后的图片image

遇到这个问题了,自然明白.....

  • 起初,只是旋转了imageView,image并没有真正旋转,代码如下:
    double Degree=45.0/180.0;
    CGAffineTransform transform= CGAffineTransformMakeRotation(-M_PI* Degree);
    bgimgView.transform = transform;//旋转bgimgView,没有旋转到bgimgView.image

+ (UIImage *)ehs_imageWithRotation:(UIImage *)image rotationDegree:(CGFloat)degree
{
    //将image转化成context
    //获取图片像素的宽和高
    size_t width =  image.size.width * image.scale;
    size_t height = image.size.height * image.scale;
    
    //颜色通道为8 因为0-255 经过了8个颜色通道的变化
    //每一行图片的字节数 因为我们采用的是ARGB/RGBA 所以字节数为 width * 4
    size_t bytesPerRow =width * 4;
    //图片的透明度通道
    CGImageAlphaInfo info =kCGImageAlphaPremultipliedFirst;
    CGContextRef context = CGBitmapContextCreate(nil, width, height, 8, bytesPerRow, CGColorSpaceCreateDeviceRGB(), kCGBitmapByteOrderDefault|info);
    
    if (!context) {
        return nil;
    }
    //将图片渲染到图形上下文中
    CGContextDrawImage(context, CGRectMake(0, 0, width, height), image.CGImage);
    
    //旋转context
    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;
    
    vImageRotate_ARGB8888(&src, &dest, nil, degree * M_PI/180.f, backColor, flags);
    
    //将conetxt转换成image
    CGImageRef imageRef = CGBitmapContextCreateImage(context);
    UIImage  * rotateImage =[UIImage imageWithCGImage:imageRef scale:image.scale orientation:image.imageOrientation];
    
    return  rotateImage;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,144评论 1 32
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,946评论 0 15
  • 周六早上我很早就吃来了,我先骑了会儿自行车然后等天明了就去吃饭,我吃完饭就在写作业,我只能写一上午,因为我下午要去...
    雁楠阅读 156评论 0 0
  • 今天是父亲节,想起父亲这个称谓就让我同时想起“父爱如山”这个形容父亲的词汇来。动笔来写我的父亲时感到内心...
    4b40c2d9081e阅读 115评论 0 0
  • 最近一段时间忙这忙那,一直没能抽出时间来去堂哥堂嫂家看看。上午给堂嫂打了个电话问问近况,堂嫂告知她今晚坐火车...
    向阳的紫藤花阅读 793评论 2 2