解决UIImage图片上传旋转

Java图片处理ImageIO.read()问题 NULL 博文链接:https://o-oand0-0.iteye.com/blog/1585854 立即下载

iOS程序中使用系统相机拍照和从相册选取图片,直接上传后在非mac系统下看到的图片会发生旋转的现象,那是因为我们没有通过图片的旋转属性修改图片倒置的。下面的方法可以很简单的解决旋转问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
@interface UIImage (fixOrientation)
   
- (UIImage *)fixOrientation;
   
@end
   
   
   
@implementation UIImage (fixOrientation)
   
- (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 = [UIImage imageWithCGImage:cgimg];
    CGContextRelease(ctx);
    CGImageRelease(cgimg);
    return img;
}
   
@end
大模型-高通qnn基础 提供较低级别、高度可定制的统一API,通过单独的库加速所有AI加速器核心上的AI模型, 可以直接用于针对特定的加速器核心或从流行的运行时(包括Qualcomm Neural Processing SDK、TensorFlow Lite和ONNX运行时)委派工作负载。一个支持异构计算、系统级配置的一体化SDK,旨在将AI工作负载引导到我们平台上的所有加速器核心。为开发人员提供灵活性,包括核心间协作支持和其他高级功能。是一个为训练好的神经网络模型提供高级量化和压缩技术的库。 阅读详情

相关推荐

Ansys Circuit新手必看:IBIS模型导入时,Pin Import和Buffer Import到底怎么选?

本文详细解析了Ansys Circuit中IBIS模型导入时Pin Import与Buffer Import的选择策略,帮助SI/PI工程师根据仿真需求做出正确决策。通过对比两种方式的特性差异和应用场景,提供实用的选择指南和性能优化建议,提升信号完整性仿真效率。

weixin_26846533的博客 257

解决图片处理后旋转问题

解决图片处理后旋转问题,图片压缩,格式转换后自动旋转。

March97的博客 4614

计算机补码两位乘法移位补0还是1,补码两位乘.doc

补码两位乘沈阳航空航天大学课 程 设 计 报 告课程设计名称:计算机组成原理课程设计课程设计题目:COP2000实现补码两位乘法院(系):计算机学院专 业:计算机科学与技术(嵌入式系统方向)班 级学 号:2009040101181姓 名:张驰指导教师:杨华完成日期:2012年1月14日目 录第1章 总体设计方案11.1设计原理11.2设计思路11.3设计环境2第2章...

weixin_34471838的博客 967

java exif 旋转_java-根据ImageIO插件中的EXIF方向实现JPEG图像的自动旋转

不旋转图像的原因>方向存储在Exif元数据中,而不是JPEG / JFIF标准的一部分>读取Exif元数据会增加额外的复杂性>如果Exif元数据错误,则可能会出错>如果将Exif元数据包含在修改后的文件中,则必须对其进行修改.>就CPU负载和内存而言,旋转图像可能会耗费大量成本>如果您阅读磁贴,则行为不确定旋转图像的原因> Exif元数据是由2010年以后...

weixin_29628635的博客 447

【两方演化博弈代码复现】:双方演化博弈的原理、概率博弈仿真、相位图、单个参数灵敏度演化

演化博弈论是研究个体在特定环境中如何通过策略选择与其他个体进行互动的学科。这一理论在生物学、经济学和社会科学等多个领域都有广泛应用。本文将深入探讨双方演化博弈的原理及其过程,并解读一段 MATLAB 代码,展示如何模拟这一过程。

当回首往事的时候,不会因虚度年华而悔恨,也不会因碌碌无为而羞愧。 6197

ColorOS13系统账户锁与密码锁破解全指南:从恢复模式到激活绕过

本文针对ColorOS13系统用户,详细解析了忘记锁屏密码(数字/图案锁)和遭遇OPPO账户锁(激活锁)的合法解决方案。核心是通过官方恢复模式进行格式化操作清除锁屏密码,并强调账户锁需通过密码找回或官方售后等正规途径解除。文章旨在帮助设备合法所有者恢复使用权,并提供了安全操作指南与数据备份建议。

weixin_28304023的博客 961

解决ios上传的图片旋转问题

#开启php配置 function adjustPicOrientation(full_filename){full_filename){ exif = exif_read_data(fullfilename);if(full_filename); if(exif && isset(exif[‘Orientation’])) {exif[‘Orientat

grapemlin-某厂螺丝钉 1516

手把手教你用ZLMediaKit搭建WebRTC直播:本地推流与播放实战

本文详细介绍了如何使用ZLMediaKit搭建WebRTC直播系统,涵盖从环境准备、编译部署、SSL证书配置到本地推流与播放的完整实战流程。通过一步步的指导,帮助开发者快速掌握基于ZLMediaKit的WebRTC推拉流技术,构建低延迟的实时音视频应用。

weixin_28842367的博客 347

iOS系统上传图片,图片旋转解决方法:

iOS系统上传图片,图片旋转解决方法:图片exif信息相关包: com.drewnoakes metadata-extractor 2.10.1 import java.awt.AlphaComposite; import java.awt.Color; impo

g_m123456_7的博客 893

OpenGL计算着色器工作组设置测试

先看看不同的显卡上工作组的数量情况。 glGetIntegeri_v(GL_MAX_COMPUTE_WORK_GROUP_COUNT, 0, data); glGetIntegeri_v(GL_MAX_COMPUTE_WORK_GROUP_COUNT, 1, data + 1); glGetIntegeri_v(GL_MAX_COMPUTE_WORK_GROUP_COUNT, 2, data...

qq_26328385的博客 1484

RK3399平台开发系列讲解(内核入门篇)1.2、如何高效的阅读Linux内核设备驱动

内核开发在很大程度上并不是重新造“轮子”的过程,而是深入理解并尽量复用现有的内核设计框架,然后参照相似的功能模块去添加或改写某项需要的功能。在对内核整体框架以及某些子系统融会贯通以后,我们才有可能站在巨人的肩膀上去改进框架本身,实现自主创新。如果过分强调不必要的“自主创新”,可能会让内核的可维护性变差,最终结果反而得不偿失。 那么此次就分享就围绕如何高效的阅读内核驱动代码:

内核笔记 7341

uniapp选择图片裁剪,上传到服务器

uniapp选择图片裁剪,上传到服务器

abs_botton的博客 3626

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

关于UIImage方向的坑--imageOrientation

最近几天项目用到了关于照片选择和照相机获取图片,出现了一个关于方向的bug,就是在本地展示的时候是正常方向展示的图片,但是上传后却发现照片向右旋转了90度,然后上网各种查资料,终于找到了一个大概的解决方案.UIImage有一个imageOrientation的属性,主要作用是控制image的绘制方向,共有以下8中方向: //UIImageOrientation的定义,定义了如下几种变换

qq1156261535的专栏 699

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

iOS 图片上传被后台给旋转了90度

图片在不裁切的情况下上传到服务器,结果返回的图片被强制转了90度,很生气.当使用相机拍照之后,或者是相册选择照片之后,如果没有开启照片的编辑,那么后台就有可能会把 照片进行旋转,这个不知道是为啥.所以在不开启裁切,后台给旋转的情况下,使用下面的方法进行处理.可以在上传之前处理,也可以在imagepicker的didfinish的代理方法中处理.    if (image.imageOrientat...

qq_36905061的博客 2143

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

iOS 图片上传旋转90°

在做项目时我们经常要对图片进行一些处理,以达到性能优化或满足需求。常见的情形有以下几种 拉伸图片 项目中使用的图片素材如果能通过拉伸获得就尽量这样去做。这样做有两个显而易见的好处,一是能够减少App安装包的大小,另外一个则是减少App运行时占据的内存空间大小。毕竟App的UI基本上来说是建立在大量的精致的图片上,如果这些图片都一概使用屏幕等大小的图片,那么对App的性能及安装量都是有一

JackYang的博客 1549

iOS中(相册)摄像头获取的图片上传至服务器被自动旋转了

今天写项目的时候发现, 通过相机(相册)获取到的图片显示是正的,但是上传至服务器后下次从服务器读取就被莫名其妙的旋转了,开始时候以为是服务器的原因,最后原来是我的原因:如果把通过相机获取到的图片,直接进行操作, 比如裁剪, 缩放, 则会把原图片向右旋转90度。

兵仔贾---的专栏 4045

摄像头(相册)获取的图片上传至服务器被自动旋转了

今天写项目的时候发现, 通过相机(相册)获取到的图片显示是正的,但是上传至服务器后下次从服务器读取就被莫名其妙的旋转了,开始时候以为是服务器的原因,最后原来是我的原因:如果把通过相机获取到的图片,直接进行操作, 比如裁剪, 缩放, 则会把原图片向右旋转90度。

liumf_0的博客 2131

IOS 图片上传旋转

解决方法 : //UIImage+fixOrientation.h@interface UIImage (fixOrientation)- (UIImage *)fixOrientation;@endUIImage+fixOrientation.m@implementation UIImage (fixOrientation)- (UIImage *)fixOrientation { //

爱钓鱼的程序猿 473

通过PHAsset获取的图片上传后变大和图像被旋转90度问题完美解决方案

通过新建立相同的localIdentifier的PHAsset来实现获取到的图片和原图片大小相同,方向正常。 通过TZImagePickerController获取到选择图片的assets和photos。代码如下: TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxIm...

jia12216的专栏 3905

视频,图片上传旋转问题解决

//优化视频旋转方向 - (AVMutableVideoComposition *)fixedCompositionWithAsset:(AVAsset *)videoAsset { AVMutableVideoComposition *videoComposition = [AVMutableVideoComposit...

weixin_30662849的博客 139

ios图片旋转

图片上传服务器,服务器收到图片出现旋转经大神指点得知Mac/iOS 旋转图片的时候只是改一个属性,不是真正旋转图片,而 windows 不认这个属性 1.类别  #import @interface UIImage (fixOrientation) - (UIImage *)fixOrientation; @end #import "UIImage+fix

u010604731的专栏 829

iOS 选取图片 后台给旋转 多图上传 代理方法不执行

经历了一个新的项目,也是一个新的团队.图片上传,成了重点.1.图片上传服务器之后,在获取的时候被旋转了90度.    解决办法为:将回调的image对象进行如下处理,if (image.imageOrientation != UIImageOrientationUp) { UIGraphicsBeginImageContextWithOptions(image.size, ...

qq_36905061的博客 396

ios旋转90度.php,iOS开发之相机图片旋转90度

今天更换文件上传方法的时候发现相机返回的图片默认是向左旋转了90度,之前使用路径上传把图片直接写入本地上传图片的时候不会出现这个问题,解决方法一:把获取的图片旋转之后上传服务器-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)inf...

weixin_42508114的博客 182

iOS 解决图片上传后逆时针旋转90度的问题

写一个分类:// // UIImage+Color.m // WhichBank // // Created by libokun on 15/9/6. // Copyright (c) 2015年 lettai. All rights reserved. //#import "UIImage+Orientation.h"@implementation UIImage (Orientatio

操作猛如虎的博客 2809
上一篇: iphone图片拉伸的几种方法
下一篇: iOS中数字的格式化
focusjava
博客等级 码龄14年 127粉丝 528原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值