美文网首页
iOS11 HEIC图片上传到服务器自动旋转

iOS11 HEIC图片上传到服务器自动旋转

作者: 暗光的技术小站 | 来源:发表于2018-08-13 17:54 被阅读0次

iOS11及以上 保存拍照的图片都会进行自动旋转处理,在上传图片时可通过图片格式判断获取图片类型,并重新调整方向,调整方向的分类代码如下: ,但会出现HEIC转jpeg(转jpeg是因为pc端也要浏览该图片), 占用内存变大的现象. 


- (UIImage*)fixOrientation {

    // No-op if the orientation is already correct

    if (self.imageOrientation == UIImageOrientationUp) return self;

    // We need to calculate the proper transformation to make the image upright.

    // We do it in 2 steps: Rotate if Left/Right/Down, and then flip if Mirrored.

    CGAffineTransform transform = CGAffineTransformIdentity;

    switch (self.imageOrientation) {

        case UIImageOrientationDown:

        case UIImageOrientationDownMirrored:

            transform =CGAffineTransformTranslate(transform,self.size.width,self.size.height);

            transform =CGAffineTransformRotate(transform,M_PI);

            break;

        case UIImageOrientationLeft:

        case UIImageOrientationLeftMirrored:

            transform =CGAffineTransformTranslate(transform,self.size.width,0);

            transform =CGAffineTransformRotate(transform,M_PI_2);

            break;

        case UIImageOrientationRight:

        case UIImageOrientationRightMirrored:

            transform =CGAffineTransformTranslate(transform,0,self.size.height);

            transform =CGAffineTransformRotate(transform, -M_PI_2);

            break;

    }

    switch (self.imageOrientation) {

        case UIImageOrientationUpMirrored:

        case UIImageOrientationDownMirrored:

            transform =CGAffineTransformTranslate(transform,self.size.width,0);

            transform =CGAffineTransformScale(transform, -1,1);

            break;

        case UIImageOrientationLeftMirrored:

        case UIImageOrientationRightMirrored:

            transform =CGAffineTransformTranslate(transform,self.size.height,0);

            transform =CGAffineTransformScale(transform, -1,1);

            break;

    }

    // Now we draw the underlying CGImage into a new context, applying the transform

    // calculated above.

    CGContextRef ctx = CGBitmapContextCreate(NULL, self.size.width, self.size.height,

                                             CGImageGetBitsPerComponent(self.CGImage),0,

                                             CGImageGetColorSpace(self.CGImage),

                                             CGImageGetBitmapInfo(self.CGImage));

    CGContextConcatCTM(ctx, transform);

    switch (self.imageOrientation) {

        case UIImageOrientationLeft:

        case UIImageOrientationLeftMirrored:

        case UIImageOrientationRight:

        case UIImageOrientationRightMirrored:

            // Grr...

            CGContextDrawImage(ctx,CGRectMake(0,0,self.size.height,self.size.width),self.CGImage);

            break;

        default:

            CGContextDrawImage(ctx,CGRectMake(0,0,self.size.width,self.size.height),self.CGImage);

            break;

    }

    // And now we just create a new UIImage from the drawing context

    CGImageRef cgimg = CGBitmapContextCreateImage(ctx);

    UIImage*img = [UIImageimageWithCGImage:cgimg];

    CGContextRelease(ctx);

    CGImageRelease(cgimg);

    returnimg;

}

相关文章

  • iOS11 HEIC图片上传到服务器自动旋转

    iOS11及以上 保存拍照的图片都会进行自动旋转处理,在上传图片时可通过图片格式判断获取图片类型,并重新调整方向,...

  • php判断图片是否需要旋转

    iPhone拍摄的图片上传到服务器上可能是翻转的,所以需要判断是否需要旋转

  • 手机中的heic怎么批量上传到电脑中?

    如果你手机拍摄了大量的HEIC图片,要上传到电脑中可以把HEIC转换成JPG后,再批量上传到电脑里。下面就是小编把...

  • iOS图片旋转问题

    iOS图片旋转问题 在iOS开发中经常会遇到图片旋转的问题,比如:有时候上传到服务器中的图片方向与iPhone中图...

  • Web

    web图片 图片处理服务器用来处理网站上传的图片满足大小、旋转等要求 图床:将本地图片上传到网络图片服务器,生成网...

  • Vue3.0拍照上传旋转90°

    有些手机拍照上传到服务器后,图片会旋转,compressorjs[https://github.com/fengy...

  • heic格式怎么打开?heic转jpg如何操作

    对于heic格式我们都知道,这个格式是目前苹果iOS11系统以上的照片格式,有点有很多,但是想要上传到电脑上去进行...

  • 如何打开heic文件?

    自从ios11更新后,使用苹果手机的人们最困惑的问题就是如何打开heic文件,怎么才能在电脑上查看heic文件呢?...

  • heic文件怎么打开

    heic究竟是什么,看图软件什么的都打不开,同样是图片格式。但是heic是苹果手机升级到ios11的格式,这也是i...

  • heic格式转化jpg工具哪个好

    HEIC图片什么软件能打开?自从苹果升级iOS11后,不少小伙伴吐槽手机拍摄的新图片无法在Windows 电脑及其...

网友评论

      本文标题:iOS11 HEIC图片上传到服务器自动旋转

      本文链接:https://www.haomeiwen.com/subject/sdgubftx.html