在 UIImageView 中旋转图像

2024-01-04

是否可以仅旋转 UIImageView 中的图像?我正在寻找有关它的信息,但我只找到了如何旋转 UIImageVeiw 的信息。


您可以使用以下代码旋转图像。注意,这使用了 CGImageRef,您可以通过以下方式从 UIImage 获取它:

CGImageRef imageRef = [self CGImageRotatedByAngle:[image CGImage] angle:30];

获得旋转图像后,您可以将 ImageView 的图像设置为新的旋转图像,如下所示:

UIImage* img = [UIImage imageWithCGImage: imageRef];
myImageView.image = img;

这是一个旋转 imageRef 的方法:

- (CGImageRef)CGImageRotatedByAngle:(CGImageRef)imgRef angle:(CGFloat)angle
{

    CGFloat angleInRadians = angle * (M_PI / 180);
    CGFloat width = CGImageGetWidth(imgRef);
    CGFloat height = CGImageGetHeight(imgRef);

    CGRect imgRect = CGRectMake(0, 0, width, height);
    CGAffineTransform transform = CGAffineTransformMakeRotation(angleInRadians);
    CGRect rotatedRect = CGRectApplyAffineTransform(imgRect, transform);

    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

    CGContextRef bmContext = CGBitmapContextCreate(NULL,
                                                   rotatedRect.size.width,
                                                   rotatedRect.size.height,
                                                   8,
                                                   0,
                                                   colorSpace,
                                                   kCGImageAlphaPremultipliedFirst);
    CGContextSetAllowsAntialiasing(bmContext, YES);
    CGContextSetShouldAntialias(bmContext, YES);
    CGContextSetInterpolationQuality(bmContext, kCGInterpolationHigh);
    CGColorSpaceRelease(colorSpace);
    CGContextTranslateCTM(bmContext,
                          +(rotatedRect.size.width/2),
                          +(rotatedRect.size.height/2));
    CGContextRotateCTM(bmContext, angleInRadians);
    CGContextTranslateCTM(bmContext,
                          -(rotatedRect.size.width/2),
                          -(rotatedRect.size.height/2));
    CGContextDrawImage(bmContext, CGRectMake(0, 0,
                                             rotatedRect.size.width,
                                             rotatedRect.size.height),
                       imgRef);



    CGImageRef rotatedImage = CGBitmapContextCreateImage(bmContext);
    CFRelease(bmContext);
    [(id)rotatedImage autorelease];

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

在 UIImageView 中旋转图像 的相关文章

  • iOS 新手。预期的表达错误?

    这看起来很不寻常 因为该方法与我的 showAnswer 方法完全相同 所以我想我应该在这里问 import QuizViewController h interface QuizViewController end implementat
  • 如果您查看内部,nib 文件到底是什么样子的?

    我刚刚学习 nibs 和 swift 并对某些东西感到好奇 我知道 如果您有一个 main storyboard 文件 则首先加载根视图控制器的笔尖 然后加载该视图控制器下可能分层存在的任何视图 但是 我想知道一些事情 当他们说笔尖已 加载
  • 快速找到一个数字的下一个倍数的方法

    我需要找到从基数开始的数字的第一个倍数 例如 7 中 3 的第一个倍数是 9 我的第一次尝试是这样做 multiple baseNumber while multiple number 0 multiple 最后 multiple 将具有第
  • 使用捏合手势;如何放大用户手指实际“捏”的位置?

    我已经在我的应用程序中的 UIImageView 上实现了 UIPinchGestureRecognizer 但是无论我在图像的哪个位置捏合 它似乎都会放大到同一个位置 有谁知道我如何让它放大到用户实际 捏 的地方 请参阅下面的代码 视图控
  • 从 NSString 的第一行删除换行符

    我怎样才能删除第一个 nNSString 中的字符 编辑 只是为了澄清一下 我想做的是 如果字符串的第一行包含 n 字符 请将其删除 否则不执行任何操作 即 如果字符串是这样的 nhello this is the first line n
  • 相机叠加图片

    edit 3 好消息和坏消息 好消息是 在连接检查器中 通过断开覆盖 UIToolbar 并连接 UIImageview 我看到theKing 但是 坏消息 我没有看到我也需要的 UIToolbar 所以现在的问题是 当用户完成这里操作后
  • 如何使用 HTTP 标头发送非英语 unicode 字符串?

    我是 HTTP 相关问题的新手 我的问题是在 iOS 开发中 我想使用 HTTP 标头发送一个字符串 所以我使用 httpRequest setValue nonEnglishString forHTTPHeaderField custom
  • Apple 推送通知徽章编号

    我开发了服务器端应用程序 以在收到新通知后将徽章编号维护为递增或递减 并在看到通知后删除它工作正常 但是显示徽章时存在一些问题 实际情况是 在设备上收到新通知后 我单击取消按钮 然后徽章编号正确显示 但之后我将打开应用程序并关闭应用程序徽章
  • 未安装的应用程序的URL方案

    简单的问题 我正在开发一个将注册自己的 URL 方案的应用程序 我计划通过人们最喜欢的 QRCode 阅读器使用 QRCode 启动该应用程序 我的问题 如果我的应用程序尚未安装在他们的 iPhone iPad 上 会发生什么 他们会被引导
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 处理核心数据中的重复条目

    我有一个允许用户保存收藏夹的应用程序 我正在使用 Core Data 将收藏夹存储为托管对象 我已经编写了一些代码来防止存储重复项的可能性 但我想知道是否有更好的方法来做到这一点 每个收藏夹对象都有一个唯一的 ID 字段 在下面的代码中 我
  • 连接到 Apple Music

    所以我尝试使用 React Native 应用程序从 iOS 设备连接到 Apple Music 有一个 API 可以执行相同的操作 但我需要从 storekit 框架调用一个函数 提出个性化请求 苹果音乐API https develop
  • insertObject:atIndex 的复杂性:

    复杂度是多少 NSArray insertObject atIndex N 或常数 另外 如何找出各种 Objective C 语句的复杂度 有一个在这里讨论 http www cocoadev com index pl NSMutable
  • 如何获取 UITableView 内容视图的大小?

    我想在填充表格时获取 UITableView 内容视图的大小 关于如何执行此操作有什么建议吗 Allows you to perform layout before the drawing cycle happens layoutIfNee
  • SDWebImage 显示缓存中图像的占位符

    在 iOS 5 1 项目 iPad 中使用 SDWebImage 3 我们展示相当大的图像 700x500 并且我们有很多图像 1000 我们预取图像并缓存到磁盘 然后允许用户浏览它们 效果很好 除了当您浏览图像时 您总是会看到占位符显示一
  • iOS 11 getUserMedia 不起作用?

    苹果公司发表声明称getUserMedia将在 iOS 11 上完全正常运行 安装 iOS 11 Beta 版本 5 后 我确实收到一条消息 表明我的网站请求访问我的相机和麦克风 但似乎是这样的 video src window URL c
  • AVAudioMixerNode pan 或 AVAudioUnitSamplerstereoPan 属性无法更改 AVAudioEngine 声音输出的左/右平衡

    我有以下代码 它播放单个 MIDI 音符 但我希望能够调整平衡 平移 以便它仅从左扬声器或右扬声器或某些组合中播放 我认为更改 sampler stereoPan 或 engine mainMixerNode pan 也许可以解决问题 但它
  • 更改选项卡栏应用程序中的 UITableViewController 样式

    我有一个带有 4 个选项卡的选项卡栏 iPhone 应用程序 在界面生成器中 我为每个选项卡设置视图控制器 我想将一个 UITableViewController 的样式从普通样式更改为分组样式 我用这样的方式替换 init 方法 id i
  • 更新查询时 ios 中出现“数据库锁定”错误

    我正在使用下面的代码更新查询 using sqlite 但我越来越 database is locked error 我尝试搜索一些 SO 链接 建议关闭数据库 但我再次执行此操作时遇到相同的错误 我已经提到过代码中出现错误的地方 cons
  • 如何将 NSAppTransportSecurity 添加到 Cordova 项目

    我正在从事一个 ionic cordova 项目 该应用程序需要配置 iOS 9 版本的应用程序传输安全例外 有谁知道如何将以下配置添加到 cordova 项目配置文件中 配置 xml

随机推荐

  • 在一张图中对不同范围的数据使用多个scale_colour_gradient比例

    我对 R 很陌生 所以如果我的问题中有不清楚的地方 请耐心等待 我有一个data frame 蛋白质 有 5 列 即 1 蛋白质名称 2 蛋白质 FC 3 蛋白质 pval 4 mRNA FC 5 mRNA pval 和 6 频率 我正在尝
  • Bash 脚本不会匹配正则表达式

    我有以下 bash 脚本 应该生成输出 TEST bin bash test TEST THING OBJECT X if test a zA Z0 9 a zA Z0 9 A Z s then echo BASH REMATCH 1 fi
  • Visual Studio 9.0 Beta 程序文件位于 C:\

    我在 C 根目录中有几个 Visual Studio 9 0 Beta 程序文件 eula 1028 txt eula 1031 txt eula 1033 txt eula 1036 txt eula 1040 txt eula 1041
  • 在 fullCalendar 上使用 clientEvents 方法过滤事件

    我有一个完整的日历正在运行 现在我想使用客户事件 http fullcalendar io docs event data clientEvents 过滤事件的方法如下 selecter provider somevalue events
  • 使用 HTTP 基本身份验证的 python Flask REST API 的安全性

    我的服务器上运行着 python Flask 公开了一个由 iOS 应用程序使用的 REST API 我正在使用 Flask HTTPAuth 模块进行 HTTP 基本身份验证 我想知道这有多安全 因为每个请求都会发送用户名 密码字符串 我
  • 大型backbone.js Web应用程序组织

    我目前正在开发一个基于backbone js 的大型网络应用程序 并且在组织 僵尸 等方面遇到了很多问题 因此我决定对代码进行重大重构 我已经编写了一堆辅助函数来处理 僵尸 但是 我想从头开始 为代码创建一个很好的结构 组织 我还没有找到很
  • 制作多列的表格视图

    我正在尝试创建这样的东西 其中每一行代表一个工作集 并包含重量和重复次数 用户可以通过按按钮添加新行 但我还没弄清楚如何在 tableView 中做到这一点 这就是我希望它看起来像这样 有什么建议 想法吗 有多种方法可以做到这一点 我将这样
  • 在 Ruby 中解析 JSON 字符串

    我有一个要在 Ruby 中解析的字符串 string desc someKey someValue anotherKey value main item stats a 8 b 12 c 10 有没有简单的方法来提取数据 这看起来像Java
  • 签名的 apk 中出现 ClassNotFoundException

    如果我在 Android 设备上安装并运行签名的 APK 则会收到此错误 如果我只是编译应用程序并直接在设备上运行 则不会出现此错误 似乎缺少的片段是在我的项目代码中 而不是在任何外部库中 我该如何调查该错误 我尝试重建 清理项目等 如果在
  • Java 泛型与 ArrayList 添加元素

    我有课A B C and D where B延伸A C延伸A and D延伸A 我有以下内容ArrayList每个都有一些元素 ArrayList b b ArrayList b
  • .NET Core 工具:导入项目时的 MSB3644

    我制作了一个基于 docker 容器microsoft dotnet 1 0 sdk 按照指南 我执行了dotnet new console并得到一个文件dotnet csproj dotnet restore and dotnet run
  • C++ 中的“<<”运算符是什么? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我无法理解以下代码中运算符 long
  • 从备份 SQL Server Express 创建/恢复数据库

    我的计算机上没有 SQL Server Management Studio 我有一个数据库备份 SQL Server 2008 R2 我的计算机上安装了与 Visual Studio 2010 Ultimate 一起安装的 SQL Serv
  • Keras 中的仅偏置层

    如何在 Keras 中构建一个层 将输入 x 映射到 x b 形式的输出 其中 b 是相同维度的可训练权重 这里的激活函数也是恒等式 您始终可以通过扩展来构建自定义层tf keras layers Layer类 这就是我要做的 import
  • 如何在android中每x分钟运行一个异步任务?

    如何在特定时间运行异步任务 我想每2分钟运行一次 我尝试使用延迟发布但不起作用 tvData postDelayed new Runnable Override public void run readWebpage 100 在上面的代码中
  • SQL中如何删除重复记录

    如何删除sql中的重复记录 In SQL Server 2005以上 WITH q AS SELECT ROW NUMBER OVER PARTITION BY dup column ORDER BY dup column AS rn FR
  • 快速滑出菜单而不滑动导航栏(以编程方式)

    几天来我一直在尝试制作左侧滑出菜单 我无法让任何库与我的应用程序配合使用 因此我求助于 raywenderlich 的教程 http www raywenderlich com 78568 create slide out navigati
  • Hibernate映射:一列到多个表

    我有一个针对场景的 最佳实践 问题 设想 DB 中的多个实体 例如 Document BlogPost Wiki 可以由个人共享 不是为每个实体创建共享表 而是创建单个共享表 问题是 如何将共享表与不同的实体进行映射 我有三个选项 请告知哪
  • 如何从 C# 与英特尔新的 DRNG(RDRAND 指令)交互? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我希望从 C 程序集中使用英特尔的数字随机数生成器 Ivy Bridge 中的 RDRAND 指令 我查看了 cpp 库 但我希望有一个更
  • 在 UIImageView 中旋转图像

    是否可以仅旋转 UIImageView 中的图像 我正在寻找有关它的信息 但我只找到了如何旋转 UIImageVeiw 的信息 您可以使用以下代码旋转图像 注意 这使用了 CGImageRef 您可以通过以下方式从 UIImage 获取它