iOS PNG图像旋转90度

2024-03-13

在我正在编写的 iOS 应用程序中,我处理 PNG,因为我处理 Alpha 通道。由于某种原因,我可以将 PNG 加载到我的imageView很好,但是当需要将图像从我的应用程序复制到粘贴板上或将图像保存到我的相机胶卷时,图像会旋转 90 度。

我对此进行了到处搜索,我学到的一件事是,如果我使用 JPEG,由于 EXIF 信息,我不会遇到这个问题(听起来)。

我的应用程序具有完整的复制/粘贴功能,这就是关键点(我将分步编写,以便更容易遵循):

  1. 转到我的相机胶卷并复制图像
  2. 进入我的应用程序并按“粘贴”,图像粘贴得很好,我可以一整天都这样做
  3. 点击我实现的复制功能,然后点击“粘贴”,图像粘贴但是旋转了。

我 100% 确定我的复制和粘贴代码没有问题,因为如果我返回上面的步骤 2,然后单击“保存”,照片将保存到我的图库中,但会旋转 90 度!

更奇怪的是,它似乎对从互联网下载的图像工作得很好,但对我用手机手动拍摄的图像却很不稳定。有些有效,有些则无效...

有人对此有什么想法吗?我可以使用任何可能的解决方法吗?我对代码非常有信心,因为它适用于我大约 75% 的图像。不过,我可以根据要求发布代码。


对于那些想要 Swift 解决方案的人,请创建 UIImage 的扩展并添加以下方法:

func correctlyOrientedImage() -> UIImage {
    if self.imageOrientation == .up {
        return self
    }

    UIGraphicsBeginImageContextWithOptions(size, false, scale)
    draw(in: CGRect(x: 0, y: 0, width: size.width, height: size.height))
    let normalizedImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return normalizedImage ?? self;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS PNG图像旋转90度 的相关文章

  • CALayer边框奇怪问题

    我正在向 CALayer 添加边框 但有一些奇怪的行为 在我应用的边框之后出现模糊边框 参见屏幕截图 这是我的代码 void configureLabel self hidden YES self textAlignment NSTextA
  • (Kiss)XML xpath 和默认命名空间

    我正在开发一个 iPhone 项目 需要解析一些 xml xml 可能包含也可能不包含默认名称空间 我需要知道如何解析 xml 以防它使用默认命名空间 由于我需要读取和写入 xml 因此我倾向于使用 KissXML 但我愿意接受建议 这是我
  • 从按钮执行 Segue 时应用程序冻结

    我的故事板中有一个按钮 它呈现一个带有模式序列的视图控制器 每次按下此按钮时 应用程序都会冻结 没有崩溃 也没有错误消息 prepareForSegue被调用 所有应该存在的视图控制器都在代码中prepareForSegue 但它们不会出现
  • Objective-C NSString for 循环与characterAtIndex

    我试图逐个字符地循环遍历 NSString 但出现 EXC BAD ACCESS 错误 您知道如何正确执行此操作吗 我已经在谷歌上搜索了几个小时但无法弄清楚 这是我的代码 m self textLength self text length
  • 如何在 iPhone 上使用带有线程的 sqlite + fdbm 库

    相关这个问题 https stackoverflow com questions 1082554 我想把数据加载放在后台 但是 我收到 库例程调用不按顺序 错误 In 这个所以线程 https stackoverflow com quest
  • 使用未解析的标识符“FlurryAdInterstitial”

    我正在尝试整合Flurry Interstitial Ads使用cocoapods in Swift and Xcode 7 1 1 我正在关注开发人员雅虎网站上的此文档 https developer yahoo com flurry d
  • UIViewControllerAnimatedTransitioning:旋转更改后黑屏片段

    我已经创建了一个视图控制器转换 只要我不更改设备方向 一切都正常 图 1 显示了应有的屏幕 然后我切换到下一个视图控制器 在其中更改方向 现在我回到第一个视图控制器并再次切换方向 然后我得到的结果如图 2 所示 出现黑色边框 请不要介意屏幕
  • Cocoa 应用程序菜单栏不可点击

    我正在我的可可应用程序中构建一个菜单栏 其中包含以下代码 implementation我的自定义应用程序CustomApplication void setUpMenuBar CustomApplication sharedApplicat
  • 如何在没有 SDK 的情况下在 Objective C 中为 S3 创建预签名 URL?

    我正在构建一个 mac 应用程序not使用 AWS iOS 开发工具包 我尝试构建的 GET 请求应遵循以下通用格式 Authorization AWS AWSAccessKeyId base64 hmac sha1 VERB n CONT
  • 调整 UIImage 的大小而不将其完全加载到内存中?

    我正在开发一个应用程序 用户可以在其中尝试加载非常非常大的图像 这些图像首先在表格视图中显示为缩略图 我的原始代码会在大图像上崩溃 因此我重写它以首先将图像直接下载到磁盘 是否有一种已知的方法可以调整磁盘上图像的大小 而无需通过以下方式将其
  • UIView animateWithDuration:delay: 工作很奇怪

    我在使用 iPhone 动画块时遇到了一个奇怪的问题 这段代码 UIView animateWithDuration 2 delay 0 options 0 animations void controller setBackgroundC
  • watchOS 错误:控制器接口描述中的未知属性

    我将 WKInterfacePicker 添加到情节提要中 并将其连接到界面控制器中的 IBOutlet 运行应用程序时 它在控制台中显示一条错误消息 控制器的接口描述 watchPicker 中的未知属性 Code interface I
  • 在 appdelegate 中呈现多个模态视图

    我想在应用程序收到 application UIApplication application didReceiveRemoteNotification NSDictionary userInfo 中的每个推送消息后呈现一个 modalvi
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • 图像作为电子邮件附件

    我想构建一个应用程序 我可以在电子邮件中附加图像 打开图像并将其设置为我的壁纸 我想让它跨平台 所以你能告诉我是否可以使用phonegap 或者我是否必须为iphone和android构建一个本机应用程序 您好 如果您只想通过电子邮件附加图
  • 在 UIWebView 中播放 Facebook 视频

    有谁知道如何在 Facebook 上播放视频UIWebView 我的应用程序将视频上 传到 Facebook 并检索视频的网址 我想将此网址嵌入到UIWebView播放 我已经为 youtube 解决了这个问题 但没有为 Facebook
  • TableViewController 的 viewDidLoad 未触发

    我一直在关注这个tutorial http www appcoda com ios programming sidebar navigation menu 有一个滑出式菜单 我添加了一个 TableViewController 它将显示文章
  • CoreBluetooth:检测设备超出范围/连接超时

    我正在设计一个 iOS 框架来处理多个 BLE 设备 均为同一类型 目前一切都运行良好 除了一件事 客户想要一个包含可用设备的列表 但是 我如何检测过去发现的设备何时不再可用 当我尝试连接到不再可用的设备时 会出现另一个问题 文档说 连接尝
  • 像 TraceGL 一样分析 Objective C 中的代码路径?

    TraceGL 是一个非常简洁的项目 它允许 JS 程序员跟踪 Javascript 中的代码路径 它看起来像这样 我想为 Objective C 构建类似的东西 我知道运行时使跟踪方法调用变得相当容易 但是我如何跟踪控制流 例如 在上面的
  • 隐藏选项卡栏项目并对齐其他选项卡项目

    在我的应用程序中 我有 4 个选项卡栏项目 我正在 XIB 文件中添加这 4 个选项卡栏项目 最初我必须显示 3 个选项卡栏项目 同步后我必须在我的应用程序中显示第 4 个选项卡栏项目 因此 为此 我使用以下代码隐藏第四个选项卡栏项目 se

随机推荐

  • MySQL 中查询/查看表的大小限制是多少?

    我正在使用 MySQL 目前数据库中有 3 个表 我创建了一个包含 3 个表之间关系的视图表 视图表应该有大约 200 000 行数据 因为我也在 Access 中测试了相同的查询并且它工作正常 但不幸的是我不允许使用 Access 当我在
  • [Vue 警告]:缺少必需的道具:“productInfo”

    我对 Vue 相当陌生 所以这可能是显而易见的 但我一定错过了一些东西 我不断收到错误 Vue warn Missing required prop productInfo 在我的 vue 文件中 它说它在 ProductSlider vu
  • 在 django-tastypie 中,可以在模式中显示选择吗?

    我想弄清楚我是否可以代表模型字段choices给使用 tastypie API 的客户 我有一个 django 1 4 1 应用程序 我正在为其实现 django tastypie 0 9 11 API 我有一个类似于以下内容的模型和模型资
  • 将Python脚本添加到C++项目中

    我如何将用 python 编写的脚本添加到 c 项目中 谢谢 编辑 基本上 脚本所做的只是通过电子邮件发送一些数据 我想将数据和电子邮件地址传递给用 python 编写的函数 希望这能说明问题 你可以看看Boost Python http
  • 当我在模型中加载数据库时,如何在 Codeigniter Profiler 中显示数据库查询?

    我的 Codeigniter 系统使用多个数据库 我不需要每个页面上的每个数据库 因此我在需要的模型中加载每个连接 然后在每个控制器中加载所需的模型 当我以这种方式加载内容时 探查器不会显示来自这些数据库的任何查询 这是我在模型中加载数据库
  • 可变参数模板包扩展

    In Andrei 在 GoingNative 2012 上的演讲 http channel9 msdn com Events GoingNative GoingNative 2012 Variadic Templates are Funa
  • 如何使用 gtk 信号将多个变量作为数据传递

    我有一个小程序 其中 gtk 信号回调函数需要 2 或 3 个变量 我不想创建这些全局变量 该项目的整个目标是整洁 并且我不想创建整个结构 以便我可以将小部件和编译的正则表达式发送到函数 据我所见g signal connect只允许单个数
  • 我无法在 WPF 中为自定义属性设置动画

    我已经为此苦苦挣扎了几个小时 但我找不到我做错了什么 请帮我找出我的错误 我创建了一个具有一个自定义依赖属性的用户控件 并且我想为该属性设置动画 这是我的课程 public partial class UserControl1 UserCo
  • 无法执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile)

    我知道这是一个重复的问题 但其他主题的答案对我没有帮助 我正在使用 Eclipse Photon Java 版本 10 我已在 eclipse 和 pom xml 文件中将 jdk jre 版本设置为 10 我已经更改了 eclipse i
  • Python-查找文本文件中单词列表的词频

    我正在尝试加快我的项目来计算词频 我有 360 多个文本文件 我需要获取单词总数以及另一个单词列表中每个单词出现的次数 我知道如何使用单个文本文件来做到这一点 gt gt gt import nltk gt gt gt import os
  • 同时可靠地使用核心数据

    我正在构建我的第一个 iOS 应用程序 理论上它应该非常简单 但我很难让它足够安全 让我有信心将其提交到 App Store 简而言之 主屏幕有一个表视图 在选择一行后 它会转到另一个表视图 该表视图以主从方式显示与所选行相关的信息 底层数
  • Angular - 拼接函数总是删除最后一个元素

    我有一个对象数组 我想在单击删除键时删除某些对象 但是 无论我创建了多少行 它总是从行数组中删除最后一项 即使我明确地放入这样的行 scope rows splice 1 1 它仍然会删除最后一个元素 而不是第二个元素 JS angular
  • 无法通过数字键盘使用小数(Android 上的 Xamarin Forms)

    我已经尝试了几个论坛上给出的几种解决方案 也在 Xamarin 论坛上提问 但都没有结果 我想在 Xamarin Forms 中创建一个条目 用户可以在其中添加十进制数 问题是我的数字键盘禁用了逗号 我可以使用自定义渲染器添加点 但由于我住
  • 如何在IIS中部署Angular Universal?

    我在 IIS 中部署角度通用应用程序时遇到问题 在角度通用中 创建了两个 dist 文件夹 一个是用于客户端的 dist 另一个是 dist 服务器 当我尝试托管时 我给出了 dist 文件夹的路径 站点正在运行 但页面未从服务器渲染 我遇
  • HTMLInputElement 没有方法“parent”

    我的页面上有两个非常相似的表单 我在 jquery 中进行简单的验证 以检查每个字段是否都有值 然后再使用 ajax 将数据发送到使用该数据的 php 处理程序 由于表单之间的相似性 我无法知道提交的是哪个表单 所以我想尝试通过表单容器 d
  • 将 Google-Play-Services 添加到库项目

    我正在开发一个地图库 并且正在使用 Google Play Services 到目前为止 一切都很好 问题是这样的 我将 Google Play Services 库项目包含在我的地图库中 使用 属性 gt android gt 添加库 使
  • 我是否应该始终在 Dispose 方法中断开事件处理程序的连接?

    我使用 C 工作 我的工作场所有一些代码标准 其中之一是我们连接的每个事件处理程序 例如KeyDown 必须在断开Dispose方法 这有什么好的理由吗 除非您期望事件的发布者比订阅者活得更久 否则没有理由删除事件处理程序 不是 这是民间传
  • 即使 Access-Control-Allow-Origin 设置为 *,为什么仍会发送多个 OPTIONS 请求?

    我已经构建了一个 API api example com 并希望可以从 www example com 访问它我还希望可以从其他域访问它 为此 我添加了 Access Control Allow Origin 但是当我打开 www exam
  • 如何比较两个边缘图像(在 OpenCV 中)?

    在我的项目中 我需要与图像进行比较 一张图像显示渲染模型 另一张图像是照片 其中显示模型中表示的真实对象 我到底想要什么 该算法必须比较两个图像并返回一个描述相似度的数字 假设数字越低 图像就越吻合 两个图像都表示为二进制图像 仅包含真实渲
  • iOS PNG图像旋转90度

    在我正在编写的 iOS 应用程序中 我处理 PNG 因为我处理 Alpha 通道 由于某种原因 我可以将 PNG 加载到我的imageView很好 但是当需要将图像从我的应用程序复制到粘贴板上或将图像保存到我的相机胶卷时 图像会旋转 90