如何正确裁剪 iPhone 4G 拍摄的图像(带有 EXIF 旋转数据)?

2023-12-12

Folks,

我一直在尝试让这段代码处理 iPhone 4G 上相机拍摄的图像,但没有成功:

iPhone - CGImageCreateWithImageInRect 旋转一些相机胶卷图片

此代码非常适合裁剪“正常”图像 - 我从互联网下载的图像或由我的 iPhone 3G 拍摄的图像。

调用旋转代码后,iPhone 4G 相机的照片似乎会被完全随机地裁剪到图像的部分。

我什至尝试使用这段代码:调整从相机中提取的 UIimage 的大小也会旋转 UIimage?

我将图像“调整”到与实现旋转相同的尺寸,然后尝试在不考虑旋转的情况下裁剪图像。也没有运气。

有什么方法可以拍摄 iPhone 4G 相机拍摄的图像并将其转换为与从互联网下载的图像具有相同质量/属性的图像(即没有旋转信息和/或其像素被旋转)从一开始就正确),以便我尝试执行的后续操作(在本例中是裁剪)将按我的预期进行?

Thanks!


有一个lot of sample code out在网上为此。对于 iPhone 4G 来说,这一切都是不完整或错误的,因为 iPhone 4G 将旋转 EXIF 数据嵌入到其 JPEG 中。该数据通过 imageOrientation 属性公开,这是 iOS 4 中的新增功能。

使用具有 EXIF 旋转信息的图像裁剪区域的正确方法是使用这家伙的代码,但不要使用这一行:

UIImage *resultImage = [[[UIImage alloc] initWithCGImage:resultImageRef] autorelease];

你应该这样称呼:

UIImage *resultImage = [[[UIImage alloc] initWithCGImage:resultImageRef scale:1.0 orientation:originalImage.imageOrientation] autorelease];

第二个调用将旋转信息从原始图像嵌入到 UIImage 中。

不幸的是,该调用在 iOS 3.XX 上不可用;幸运的是,您不太可能在这些设备上遇到带有 EXIF 信息的图像,因为相机无法拍摄带有旋转信息的照片。

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

如何正确裁剪 iPhone 4G 拍摄的图像(带有 EXIF 旋转数据)? 的相关文章

  • 修改 SCNParticleEventBlock 中的 SCNParticleSystem 颜色不起作用

    鉴于提供的示例代码handle forProperties handler https developer apple com documentation scenekit scnparticlesystem 1523251 handle
  • 在 iOS 中发送音频文件和 JSON 字符串

    我正在尝试将音频文件和 JSON 字符串发送到 PHP 服务器 使用以下代码将发送 JSON 但文件到达时为空 如果我将 JSON 块放在音频块下方 文件将完全到达 但 JSON 为空 有什么想法吗 void sendFile NSStri
  • 主屏幕上 iPhone Web 应用程序上的 Google appengine 身份验证

    我正在使用 Google appengine 开发一个可在浏览器和 iPhone 上使用的 Web 应用程序 我已经为此应用程序购买了域名 这样我就有了一个漂亮的 URL 我用过User API http code google com a
  • 在 Swift 中有条件导入基于 iOS 版本的框架(如 Speech)?

    有没有办法有条件地导入框架Swift基于运行时 iOS 版本 特别是 我有一个部署目标为的应用程序iOS 8 我想使用新的Apple Speech应用程序中的框架 如果在运行时可用 我知道 available iOS 10 代码部分的指令
  • SwiftUI DisclosureGroup 单独展开每个部分

    我正在使用 Foreach 和 DisclosureGroup 来显示数据 每个部分都可以展开 折叠 然而 它们都在同时扩展 折叠 如何单独展开 折叠每个部分 struct TasksTabView View State private v
  • 为什么 toDataURL 在移动设备上无法获取画布内容?

    我正在尝试从画布中获取图像 它可以在电脑浏览器上运行 但不能在移动设备上运行 我在 iPhone 上的 Safari 中进行了测试 这是代码 draw click function drawing css visibility visibl
  • ios如何搜索目录

    我想知道如何检查我的应用程序中是否存在目录 例如 如果我想搜索我的应用程序文档中是否存在文件夹 以及如何在其中创建新文件夹 此致 检查文件是否存在 BOOL fileExistsAtAbsolutePath NSString filenam
  • PhoneGap 上的 SQLite 数据库

    我想使用 PhoneGap 为 iPhone 实现 SQLite 数据库 我了解 iPhone 本机应用程序中 SQLite 数据库的一些基础知识 但是如何在 PhoneGap 中实现 SQLite 数据库呢 我们最终使用了PhoneGap
  • iOS8 自签名证书已安装但仍不受信任

    由于我无法控制的原因 我需要使用自签名证书针对平台进行 iOS 开发 它是一个在 SAN 中具有特定 IP 地址的根证书 当证书安装在 OSX 系统帐户下时 所有浏览器现在将正常信任对给定 IP 地址的任何访问 通过电子邮件将同一证书发送到
  • 如何在 iOS 中创建多行表格单元格?

    如何让第二个单元格扩展以适合文本而不是缩放文本 iOS 中有内置的方法可以做到这一点 还是我必须想出一些自制的解决方案 如果您查看 iOS 联系人应用程序 会发现有一个类似地址的框 但我找不到如何实现这一点 对于任何希望将来实现这一目标的人
  • tableView:canEditRowAtIndexPath: 弹出 viewController 时崩溃

    我有一个带有UITableView 我允许通过滑动来编辑 删除 的行 就像在邮件应用程序中一样 我用以下方法来做到这一点 BOOL tableView UITableView tableView canEditRowAtIndexPath
  • 如何将 RGB 值转换为十六进制字符串 iOS swift

    我想将 RGB 值转换为十六进制字符串 我将十六进制转换为 RGB 如下所示 但反之亦然 func hexStringToRGB hexString String gt red CGFloat green CGFloat blue CGFl
  • 如何获得 UICollectionView 的矩形

    我想在 UICollectionView 中找到节标题的框架 我对 UITableView 也有类似的情况 为此 我能够通过执行以下操作来获得其正确性 CGRect rect self tableView rectForHeaderInSe
  • 在 XCode 中本地化 HTML 文件

    我有一个本地化的 iOS 应用程序 我希望在其中包含一些本地化的 HTML 文件 我不知道该怎么做 目前 我的文件夹结构如下所示 myapp en lrproj Localizable strings fr lrproj Localizab
  • XOR或其他简单的文件混淆方法ios目标c

    我正在开发一个使用受版权保护的 pdf 文件的 ios 应用程序 我正在寻找一些简单的方法来混淆文件以确保安全 这些方法不需要我经历额外的大众市场 CCATS 加密审查流程 但也将确保版权所有者已尽我所能来保证他们的数据安全 当然 我用密码
  • 如何在复杂的层次结构中上下同步 CALayer 和 UIView 动画

    See 如何在整个层次结构中管理 CALayer 动画 https stackoverflow com questions 26917908 how to manage calayer animations throughout a hie
  • 在 Swift 中计算两个 CLLocation 点之间的方位角 [重复]

    这个问题在这里已经有答案了 我正在尝试计算仅 swift 代码中两个 CLLocation 点之间的方位 我遇到了一些困难 并假设这是一个非常简单的函数 堆栈溢出似乎没有列出任何内容 func d2r degrees Double gt D
  • 出现错误:FT_Open_Face 失败:错误 2

    当我使用时出现以下错误CGContextDrawPDFPage context PDFPage 对于某些文件 有解决办法来解决这个问题吗 FT Open Face failed error 2 错误2看起来像errno2 这是 找不到文件
  • 为 UISlider 设置刻度线

    有没有为 UISlider 设置刻度线的方法 NSSlider 有一个叫做 void setNumberOfTickMarks NSInteger numberOfTickMarks 但 UISlider 似乎没有 我想要做的是将滑块值设置
  • 初始化Object中的空字符串?

    有人使用以下方法来初始化 NSstring NSString astring NSString alloc init 我想知道为什么不直接使用 NSString atring nil or NSString astring 没有semant

随机推荐

  • Java中字符串结束符

    我正在解决一个简单的问题 在Java中删除字符数组中的某些字符 想法很简单 static void remove char char arr char c int r 0 for int i 0 i lt arr length i if a
  • 实时音频队列录音回放

    嘿伙计们 我正在尝试构建一个用于实时变声的应用程序 第一步 我设法将音频数据录制到指定文件并在录制后播放 现在我尝试更改在循环录制音频缓冲区后立即播放音频缓冲区的代码 我的问题是 如何直接从录音音频队列中读取音频数据 而不是 如文档中所示
  • 从 adb 获取包的可启动活动名称

    有没有办法从使用中获取包的可启动活动adb 对于未root的手机 即无需从中拉出apk data app目录并检查appt 我尝试了 dumpsys 但它不包含有关默认可启动活动的信息 Thanks 您不需要 root 即可从中提取 apk
  • 100% CPU 使用率下的 Java 线程优化

    我有一个应用程序 它接受队列上的工作 然后旋转该工作以在独立线程上完成 线程数量并不多 比如最多 100 个 但这些都是密集型任务 可以快速将 CPU 提升到 100 为了以最快的速度完成最多的工作 当我需要做更多的工作时 我最好只启动更多
  • 杀死在 Matlab 中创建的 Excel 进程

    鉴于我写入工作簿 目前我会终止所有 Excel 进程 以便我的代码在循环调用时可以正常工作 xlswrite path values system taskkill F IM EXCEL EXE 这使得我在处理另一个 Excel 文件时无法
  • Chrome Webstore 内联安装与 AngularJS

    我是 AngularJS 的新手 并尝试按照以下步骤安装 Chrome 扩展网上商店内联安装指南 在我的 html 文件中
  • 使用 Google Sheets API 和服务帐户时收到 403 禁止

    我有一个使用服务帐户的应用程序 因为它从 cron 作业运行 所以我无法让它通过浏览器中的用户进行授权 以下是我创建床单服务的方法 private static final String APPLICATION NAME my app pr
  • XStream 中的单元素数组错误

    如果你有这样的函数 List
  • 动态添加 Django 表单集实例并使用 HTMX POST 的正确方法是什么?

    我正在制作一个表格嵌套动态表单集 using htmx我 想逃避使用JS 但如果没有选择 实例更多表单集字段为了使动态嵌套形式 但是当我POST 仅数据来自1 个实例 of the Chlid formset 最后一个 已发布 表单的其余部
  • jQuery 事件处理程序的 JavaScript 闭包

    我有一个对象列表 每个对象都有一个 bullet 它是一个 SPAN 我想将跨度上的单击绑定到处理程序 而不是使用 jQuery 在跨度上执行特定操作 我看到一些我不理解的行为 所以我希望有人可以解释发生了什么 基本上 第一个代码示例有效
  • 使用鼠标中键滚动按钮禁用浏览器滚动

    我的页面上有一个 Flash 元素 您可以使用鼠标中滚轮与其进行交互 页面很长 因此 当使用鼠标滚轮滚动时 它会与 Flash 元素交互并滚动浏览器窗口 有没有办法在 Flash 元素处于活动状态时禁用浏览器滚动
  • 如何使用 PyQt 在按钮单击时调用 python 脚本

    我使用 PyQt4 创建了一个带有按钮的表单 在此按钮上 我想调用另一个 python 脚本 如下所示 文件1 py import sys from PyQt4 import QtCore QtGui from file1 ui impor
  • Google App Script URLFetch 配额不清楚

    我有兴趣构建一个依赖外部服务的电子表格插件 并且 URLFetch 似乎是使用应用程序脚本执行远程 HTTP S 调用的唯一方法 我已经达到了应用脚本配额页面检查限制 我可以看到它们是 GSuite 计划每天 100 000 个呼叫 Gma
  • 使用正则表达式检测以带重音的大写字母开头的单词

    我想使用 Java 中的正则表达式提取以大写字母开头的单词 包括重音大写字母 这是我对以大写 A 到 Z 开头的单词的条件 if link text matches A Z true 但我也想要以 a 开头的单词accented也是大写字符
  • MASM32 中令人困惑的括号

    我正在尝试掌握 MASM32 但对以下内容感到困惑 我认为括号用于间接寻址 所以如果我有预定义的变量 data item dd 42 then mov ebx item 会将 item 的内容 即数字 42 放入 ebx 中并 mov eb
  • 如何在 MVC Razor 中显示 TimeSpan

    所以我有一个视频的持续时间 以秒为单位 我想在 Razor 中显示该持续时间 目前我正在使用 TimeSpan FromSeconds item Duration ToString 然而我正在使用的其余代码使用 Html DisplayFo
  • angularjs firebase onAuthStateChanged 注销数据库错误

    当我退出应用程序时 出现以下错误 Error permission denied at users KuehJHDJ15SfS1s6FIh1 Client doesn t have permission to access the desi
  • SSLPeerUnverifiedException 与 httpClient

    我正在尝试使用自签名证书测试安全的 http 连接 仅用于开发目的 但我无法解决对等未验证异常 当然我已经查看了有关此异常的类似帖子 以下是我正在使用的当前实现 public class SelfCertificatesSocketFact
  • 来自 pynput 的键盘监听器

    我正在尝试将键盘侦听器导入到我的班级中 但不断收到 NameError name on press is not defined 这是我的代码 from pynput import keyboard class game code with
  • 如何正确裁剪 iPhone 4G 拍摄的图像(带有 EXIF 旋转数据)?

    Folks 我一直在尝试让这段代码处理 iPhone 4G 上相机拍摄的图像 但没有成功 iPhone CGImageCreateWithImageInRect 旋转一些相机胶卷图片 此代码非常适合裁剪 正常 图像 我从互联网下载的图像或由