将之前通过手势旋转的 UIImageView 与另一个合并。 WYS 不是 WYG

2023-12-03

我在尝试合并两个 UIImageView 时变得疯狂。

情况:

  • 背景 UIImageView (用户照片图像视图)
  • 一个重叠的 UIImageView(产品照片图像视图) 可以拉伸、挤压和 旋转的

我在 UIImages 上调用我的函数,但我可以从包含它们的 UIImageView 中获取坐标和新的拉伸尺寸(它们在我的类中合成)

    - (UIImage *)mergeImage:(UIImage *)bottomImg withImage:(UIImage *)topImg;

也许最简单的方法是在新的 CGContextRef 中渲染顶部 UIImageView 的层,如下所示:

    [bottomImg drawInRect:CGRectMake(0, 0, bottomImg.size.width, bottomImg.size.height)];
    [productPhotoImageView.layer renderInContext:ctx];

但这样我就失去了之前通过手势应用的旋转效果。

第二种方法是尝试将 AffineTransformation 应用于 UIImage 来重现 GestureEffects,然后在上下文中绘制它,如下所示:

    UIImage * scaledTopImg = [topImg imageByScalingProportionallyToSize:productPhotoView.frame.size];
    UIImage * rotatedScaledTopImg = [scaledTopImg imageRotatedByDegrees:ANGLE];    
    [rotatedScaledTopImg drawAtPoint:CGPointMake(productPhotoView.frame.origin.x, productPhotoView.frame.origin.y)];

第二种方法的问题是,自用户开始交互以来,我无法准确获得最终的旋转度数(应在上面的代码中填写的 ANGLE 参数)量,这是因为 RotationGesture 在之后重置为 0应用,以便下一个回调是当前轮换的增量。

当然,最简单的方法是第一个,冻结两个 UIImageViews,因为它们在那一刻显示,但实际上我仍然没有找到这样做。


好吧,基本上还有另一种解决方法可以解决所有这些疯狂的合并问题,但这绝对不是一个优雅的解决方案。为了避免处理任何类型的 AffineTransformation,只需捕获 ImageScreen 然后裁剪它。

CGImageRef screenImage = UIGetScreenImage();
CGRect fullRect = [[UIScreen mainScreen] applicationFrame];
CGImageRef saveCGImage = CGImageCreateWithImageInRect(screenImage, fullRect);
CGRect cropRect = CGRectMake(x,y,width,height);
CGImageRef saveCGImage = CGImageCreateWithImageInRect(screenImage, cropRect);

告诉过你这并不优雅,但对于某人来说可能很有用。

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

将之前通过手势旋转的 UIImageView 与另一个合并。 WYS 不是 WYG 的相关文章

  • 如何将十六进制数组转换为 UIImage?

    有几个与使用 P25mi 动态打印图像相关的未解答问题 没有一个得到公认的答案 下面有几个链接 如何将图像转换为位图代码以便在 iPhone 中进行蓝牙打印 https stackoverflow com questions 1383828
  • 适用于移动应用程序的 Rails REST API。会议

    我正在创建一个移动应用程序 该应用程序拥有用户并与后端的自定义 Rails REST API 进行通信 我应该在登录时创建会话吗 或者我应该在每个请求中发送用户名和密码 如果会议是可行的方法 那么通常是如何实施的 只需生成令牌 并使用它们来
  • Swift 3 中来自路径或文件名的 UIImage

    我的应用程序的文档目录中有一堆图像 我想将其中之一加载到我认为的 UIImage 中 这就是我所做的 myImage image UIImage named image jpg the file exist but this returns
  • 所有 UI 前面的透明 UIImageView

    首次启动我的应用程序后 我想向用户展示一些教程 以解释我的应用程序的功能 所以我需要设置一个带有一些箭头和标签的透明 UIImageView 其中主 UI 更具体地说 tabbarcontroler 中的 navigationviewcon
  • 如何在 UIView 中获取父导航控制器

    我创建了一个UITabBarController在我的应用程序委托中 其中每个选项卡栏项目都有不同的UINavigationController加载自定义的UIViewController带NIB 使用 pushViewController
  • 使用 AVVideoCompositionCoreAnimationTool 在 CALayer 中将视频与静态图像混合

    我正在尝试将来自相机的视频与静态图像 水印 混合 我已经检查了这里的问题 答案和一些示例 包括来自 Apple 的 WWDC AVEditDemo 并以以下代码结束 不幸的是 导出的视频不包含带有图像的图层 有任何想法吗 void imag
  • IOS:触摸 Imageview 时的事件

    我有一个带有 png 的 ImageView 我想这样做 当有人触摸这个 imageview 时 它的 alpha 更改为 0 0 这可能吗 全部无按钮 您可以使用UITapGestureRecognizer添加到UIImageView v
  • 截取 UIImageView 的屏幕截图我只需要图像 IOS

    在我的 IOS 应用程序中 我正在截取 UIImageView 的屏幕截图 如附件照片所示 非常完美 但在这里 我采取了UIImageView content mode 方面适合 我用过这个代码 func captureView gt UI
  • 我们可以在 Tiff 文件中添加自定义键或如何在 Tiff 文件的图像属性中添加温度数据

    我想在选定点添加图像的温度数据 它是否有任何预定义的属性 或者我们是否可以在 Tiff 文件中创建自定义 私钥来存储图像的温度数据 Answer 使用 TIFF 库文档在 TIFF 文件中创建您自己的自定义键 在文档中 他提到了如何创建和使
  • ASIHTTP:上传 UIImage?

    有人可以告诉我如何在 Objective c 中使用 ASIHTTPRequest 对象上传 UIImage 对象吗 我需要将其转换为 NSData 对象吗 这是头像上传网址 E g UIImage toUpload UIImage ima
  • 导出 iPhone 地址簿数据库的可能方法

    我想将 Phone s Address Book sqlite db 导出到我的 iPhone 应用程序中 我在网上搜索过 但一切似乎都在 ABAddressBook 上迭代 但我想知道是否可以以编程方式将 Phone s Address
  • iPhone iOS 保存从 UIImageJPEGRepresentation() 获得的数据第二次失败:ImageIO: CGImageRead_mapData 'open' failed

    我的 UIImage 操作遇到了一个奇怪的问题 我正在进行保管箱同步 并且必须将我的图像存储为本地文件 为此 我使用以下命令保存它们UIImagePNGRepresentation image or UIImageJPEGRepresent
  • 在 iphone/ipad 选项卡之间共享 NSManagedObjectContext 和其他服务类

    我很乐意构建一个基于 Core Data 选项卡的 iPad 应用程序 我在我的应用程序委托类中使用以下内容将 NSManagedObjectContext 传递到我的根视图 BOOL application UIApplication a
  • MapKit更新标注图像

    我在寻找更新自定义的方法时遇到问题MKAnnotationView异步请求完成后的图像 其中包含有关注释状态的信息 到目前为止 我有这个 MKAnnotationView mapView MKMapView mapView viewForA
  • iPhone SDK - orkut API

    我曾使用 gData 库从 iPhone 中的 Google 联系人中检索联系人信息 同样 我将与 Orkut 合作 有没有像 gData 这样适用于 Orkut 的库 如果是这样 请给我链接 提前致谢 对于 orkut 我们有 orkut
  • 如何在 iOS 中创建多行表格单元格?

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

    我有这段代码试图在一个周期中运行一组简单的图像 我在应用程序中拥有的只是在视图控制器的 h 文件中声明的一个 UIImageView property strong nonatomic IBOutlet UIImageView imageD
  • 以模态方式呈现 UITabBarController - 自动旋转问题

    我尝试使用以下代码以模态方式呈现 UITabBarController Declare all view controllers TabOne tabOne TabOne alloc initWithNibName TabOne bundl
  • UIImage 在编码/解码时不等效

    我一直在对我的模型进行一些测试 以确保当我将它们编码为 JSON 然后使用它们解码回来时它们是相等的JSONEncoder Decoder 然而 我的一项测试失败了 罪魁祸首是UIImage 我已确保在编码 解码过程中没有抛出任何错误 首先
  • 您可以播放 iPod 库中的视频吗?

    iOS4 中是否可以播放 iPod 库中的视频 或者仍然仅限于音频 我找不到任何明确的答案 但 SDK 似乎不允许视频 不 你不能那样做 检查 iPod Library Access 编程指南 它说 iPod 库访问仅适用于基于音频的媒体项

随机推荐

  • 在 Python 中使用 BeautifulSoup 识别和替换 XML 元素

    我正在尝试使用 BeautifulSoup4 来查找和替换 XML 中的特定元素 更具体地说 我想找到 file name 的所有实例 在下面的示例中 文件名是 Cyp26A1 atRA minus tet plus txt 并将其替换为该
  • 如何在 Visual Studio 中向解决方案资源管理器添加自定义图标

    我正在尝试将自定义图标添加到 Visual Studio 中的解决方案资源管理器 就像文件图标扩展 does 我认为我已经为 Visual Studio 做了所有正确的事情 将新图标与以 结尾的文件关联起来 d and di扩展 但 Vis
  • 如何创建具有运行时间限制的数据结构

    我需要实现一个支持插入删除和搜索的数据结构 O log n 并在 O 1 中提取特殊对象 我的数据结构需要保存按 ID 排序的车辆 并且每辆车都有一个字段表示距离下一次服务的时间 我需要在 O 1 时间内提取接下来需要提供服务的车辆 欢迎所
  • 如何在Protege 4.3.0中启用Pellet?

    已经过去快一年了无法下载 Protege 4 3 的 Pellet 插件建议该版本不可用 有什么改变吗 应该可以从他们的 github 下载它并将其放入 Prog g 的插件文件夹中 https github com Complexible
  • 重复时间序列数据的 Pandas 滚动中位数

    我看到 Pandas 不允许重复的时间序列索引 yet https github com pydata pandas issues 643 但很快就会添加 我想知道是否有一种好方法可以通过多索引标签 列将滚动窗口方法应用于具有重复时间的数据
  • parseInt() 和 parseFloat() 位于哪里?

    当我在控制台中按 TAB 时 我看到了 parseInt 和 parseFloat 我只需输入 parseInt 123asd 但这些位于哪里 它们是全局对象的属性 内置函数 对于浏览器来说 这是window
  • 字符串作为数组索引

    In 3 XoePhoenix 数组索引是字符数组类型 我们可以用 C 来做这个吗 数组索引不是必须是整数吗 什么是3 XeoPhoenix mean 3 XoePhoenix 是相同的 XoePhoenix 3 所以它将评估为 char
  • IE10、11 带连字符的 CDATA 解析错误

    我遇到过这样的问题 当尝试解析从服务器收到的 xml 时 CDATA 块中包含的消息在 IE10 11 中解析 直到找到第一个连字符 请参阅我收到的 XML 示例
  • Chrome headless 忽略系统代理

    编辑 这是演示该问题的 YouTube 视频 https youtu be MIZjHKCVr1s 我正在使用 headless 标志与 chrome 一起运行 selenium 但显然使用 headless 似乎会忽略系统代理 我之前在
  • 将数组中的对象推入循环内[重复]

    这个问题在这里已经有答案了 几个小时以来 我一直在尝试解决这个问题 但我似乎确实无法成功 我正在尝试创建一个 JSON 字符串 如下所示 但是在传递变量的值时obj到变量j我得到的数组仅包含该循环的最后一个结果 而不是得到如下结果 mach
  • SCI - 系统控制中断向量是如何定义的?

    根据 ACPI 规范 FADT 固定 ACPI 描述表 表包含一个字段 用于报告SCI中断操作系统的编号 该字段定义如下 我在 Intel x86 平台上转储了 FADT 表 看到 SCI 中断与编号相关联9 但根据英特尔手册 0 31是
  • matplotlib 动态子图数量

    我正在尝试使用以下方法获取子图matplotlib 数量为subplots在运行时计算 如pnum以下示例有所不同 pnum len args m f ax1 ax2 plt subplots pnum sharex True sharey
  • 从 iOS 导出椭圆曲线密钥以与 OpenSSL 配合使用

    我生成了私钥 公钥对并将其存储在 Secure Enclave 内 它是 256 位椭圆曲线密钥 唯一可以存储在 Secure Enclave 中的密钥类型 I use SecKeyCreateWithData and SecKeyCopy
  • 使用主机 SSH 密钥在 DockerFile 中访问私有 Git 存储库

    我是 Docker 新手 正在尝试让我的 Angular Web 应用程序在容器中构建和运行 我在项目的根目录中有一个非常基本的 Dockerfile 如下所示 Create the image based on the official
  • 如何用C#将委托排队在后台串行执行?

    从游戏循环中 我想在后台开始工作 该工作应该一个接一个地执行 但不应阻止游戏循环 所以理想情况下是一个类BackgroundQueue可以这样使用 BackgroundQueue myQueue new BackgroundQueue ga
  • R构建文档术语矩阵如何匹配其值由空格分隔的短语组成的字典

    当使用R进行文本挖掘时 在对文本数据进行重新处理后 我们需要创建一个文档术语矩阵以供进一步探索 但是和中文类似 英语也有一些特定的阶段 比如 语义距离 机器学习 如果把它们分词成词 它的含义就完全不同了 我想知道如何匹配预先定义的词典值由空
  • 将字符串转换为 HTML - 字符串转换为“a href”元素

    您好 我在将一些 HTML 链接添加到我的 HTML 页面时遇到一些问题 我尝试四处寻找 但到目前为止没有任何帮助 我的页面最初将加载一个片段 div style display inline block color rgb 0 255 1
  • php默认时区错误

    我在尝试安装 Kohana SilverStripe 时收到以下错误 警告 这意味着什么 我该怎么做 Warning date default timezone get It is not safe to rely on the syste
  • SFINAE 检查表达式是否编译并返回 std::true_type [重复]

    这个问题在这里已经有答案了 如果以下表达式编译 我想获得 std true type template
  • 将之前通过手势旋转的 UIImageView 与另一个合并。 WYS 不是 WYG

    我在尝试合并两个 UIImageView 时变得疯狂 情况 背景 UIImageView 用户照片图像视图 一个重叠的 UIImageView 产品照片图像视图 可以拉伸 挤压和 旋转的 我在 UIImages 上调用我的函数 但我可以从包