如何获取UIImage中形状的UIBezierPath或将UIImage裁剪为某种形状

2023-12-28

我是 iOS 新手,我想知道我是否可以获得UIBezierPath of a UIImage。我有一个UIImage的面部布局并想要得到UIBezierPath,这有助于我裁剪UIImage。 或者谁能​​告诉我其他裁剪方法UIImages?,但请确保裁剪为自定义形状(例如:脸、心形等),而不是矩形。


这是代码用图像掩盖图像:

- (UIImage *)cerateImageFromImage:(UIImage *)image
                    withMaskImage:(UIImage *)mask {
    CGImageRef imageRef = image.CGImage;
    CGImageRef maskRef = mask.CGImage;

    CGImageRef imageMask = CGImageMaskCreate(CGImageGetWidth(maskRef),
                                             CGImageGetHeight(maskRef),
                                             CGImageGetBitsPerComponent(maskRef),
                                             CGImageGetBitsPerPixel(maskRef),
                                             CGImageGetBytesPerRow(maskRef),
                                             CGImageGetDataProvider(maskRef),
                                             NULL,
                                             YES);

    CGImageRef maskedReference = CGImageCreateWithMask(imageRef, imageMask);
    CGImageRelease(imageMask);

    UIImage *maskedImage = [UIImage imageWithCGImage:maskedReference];
    CGImageRelease(maskedReference);

    return maskedImage;
}

Usage:

UIImage *image = [UIImage imageNamed:@"Photo.png"];
UIImage *mask = [UIImage imageNamed:@"Mask.png"];
self.imageView.image = [self cerateImageFromImage:image
                                     withMaskImage:mask];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取UIImage中形状的UIBezierPath或将UIImage裁剪为某种形状 的相关文章

  • GMSMapView 中的倒多边形

    我必须在我的 iPhone 项目中使用 Google 地图 并且我正在使用 GMSPolygon 来绘制多边形 但是如何填充地图上除多边形内部之外的所有位置 就像下图一样 谢谢 我玩过你的问题 主要思想是用多边形填充整个地球 然后为您的特定
  • Objective-C / C 给出枚举默认值

    我在某处读到过关于给枚举默认值的内容 如下所示 typedef enum MarketNavigationTypeNone 0 MarketNavigationTypeHeirachy 1 MarketNavigationTypeMarke
  • 如何快速更改按钮图像?

    我正在开发一个有按钮的应用程序 该按钮没有文本 图像或背景 所以我想做的就是在viewDidLoad函数中给它一个图像 这就是我所拥有的 IBOutlet var tapButton UIButton override func viewD
  • Swift 3:如何去除UITableView屏幕截图的灰色区域

    我在从桌面视图的屏幕截图中删除灰色区域时遇到了问题 这是我尝试截图时的输出UITableView 实际上我隐藏了一些tableViewCell这是不需要的 可能这就是区域显示灰色的原因 任何帮助表示赞赏 非常感谢 Answer 我通过使用
  • UITextFieldDelegate 与 UITextField 控件事件

    如果我想处理 UITextField 的更改 例如用户在其中键入 看起来这可以通过将委托分配给该文本字段 然后让委托实现 shouldChangeCharactersInRange 来完成 或者通过将目标添加到文本字段并处理 UIContr
  • 玻璃效果 UIView

    我想知道如何在 UIView 上添加玻璃效果 我想像这样的效果 http pttrns com pickers detail 0dc9d9f6c6a7577613b3453768eee3b3在灰色半透明视图上 您 可以在这里看到 Thank
  • 如何检测Retina高清显示屏?

    UIScreen有一个新的 nativeScaleiOS 8 中的属性 但文档没有提及它 property nonatomic readonly CGFloat nativeScale 还有一个scale属性 但文档说它是 2 用于视网膜显
  • 适用于 Objective-C / iPhone 的良好 HTTP 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 UPDATE 这个问题显然已经过时了 参见日期 我建议只使用现代 iOS7 功能 例如 NSURLSession 我想 这个问题是为了历史
  • UISearchController 保留问题

    我正在尝试使用 UISearchController 但是我遇到了无法解决的保留问题 MainTableview 有两个部分 第1节 基于某些正则表达式过滤数据 第2节 All Data 我将 UISearchController 添加到我
  • 为什么我的 tableView 函数运行了 3 次?

    我有一个 UITableView 并且有执行它所需的方法之一 func tableView tableView UITableView numberOfRowsInSection section Int gt Int println sec
  • FireMonkey iOS RAD Studio XE2 - 在从 URL 加载的表单上显示图像

    是否可以将 TImage 放置在 iOS 的 FMX 表单上 并将图像 jpg 从 URL 加载到此 TImage 中以在 iOS 应用程序中显示 我尝试过但没有成功 任何正确方向的提示或指出都会受到赞赏 将 TButton TImageC
  • PrepareForSegue之谜

    我在两个不同的 VC 中有一个prepareForSegue 方法 一个使用一个if声明 而另一个旨在使用switch 除了名称之外 代码几乎相同 这个效果很好 void prepareForSegue UIStoryboardSegue
  • 应用程序传输安全已禁用,但仍然出现 SSL 握手错误

    我在通过 HTTPS SSL 连接到 API 时遇到问题 我已经使用下面的字典完全禁用了应用程序传输安全性 ATS 尽管 SSL 证书通过了 NSCURL 的所有测试
  • iOS WKWebView.scrollView委托导致BAD_ACCESS

    我的 viewController 有一个 UIView 属性 其中包含一个 WKWebView 我将 WKWebView rollView 委托设置为我的 viewController 它是我的 UIView 子类的公共函数 并在我的 v
  • 如何更改已上传的 Firebase 存储图像文件名?

    我需要更改已上传到 firebase 存储中的文件名 因为 在 firebase 存储中上传图像后 我将 url 保存在 firebase 数据库中的特定子 文件夹 下 但是 当我将图像移动到另一个子 文件夹 时 我需要根据新名称更改存储中
  • 自定义 MKAnnotationView - 如何捕获触摸而不忽略标注?

    我有一个自定义 MKAnnotationView 子类 它完全按照我想要的方式显示视图 在那个视图中 我有一个按钮 我想捕获按钮上的事件来执行操作 这很好用 但是 我不希望标注被忽略或消失 基本上 触摸标注中的按钮将开始播放声音 但我想保留
  • 当您感兴趣的任务完成时,是什么让完成处理程序执行该块?

    我一直在询问并试图了解完成处理程序是如何工作的 我用过很多 也读过很多教程 我将在这里发布我使用的代码 但我希望能够创建自己的代码 而无需使用其他人的代码作为参考 我理解这个完成处理程序 其中调用者方法 void viewDidLoad n
  • 将 CALayer 旋转 90 度?

    如何旋转CALayer90度 我需要旋转所有内容 包括子图层和坐标系 Obj C theLayer transform CATransform3DMakeRotation 90 0 180 0 M PI 0 0 0 0 1 0 Swift
  • 为什么这个 SKPhysicsJointPin 不能将这 2 个精灵保持在一起?

    我显然不太了解 SKPhysicsJoint 但是除了 Apple 文档之外 网上的信息还很少 下面的代码有什么问题 我认为应该保持头部和颈部永久连接 我的意图是它们就像两张带有大头针的纸 这样它们可以旋转一点 但不仅仅是完全分开 当我运行
  • KeyboardAvoidingView - 隐藏键盘时重置高度

    我正在使用 React NativeKeyboardAvoidingView设置我的高度View当显示键盘时 但是当我关闭应用程序中的键盘时 视图的高度不会变回原来的值

随机推荐

  • 如何像 DevTools 那样突出显示 Chrome 扩展中的元素?

    我有兴趣创建一个 Chrome 扩展程序 它列出了网页上菜单中具有 id 属性的所有元素 然后 当用户单击菜单中的元素时 网页上相应的元素就会突出显示 当您右键单击并检查某个元素时 我看到 Chrome 开发工具会突出显示该元素 我很好奇是
  • uint32_t 和 uint8_t[4] 未定义行为的联合? [复制]

    这个问题在这里已经有答案了 在评论中这个答案 https stackoverflow com a 8568531 1025391据说使用如下联合将整数分割成字节将是未定义的行为 该位置给出的代码与此相似但不完全相同 如果我更改了代码的未定义
  • 使用 SIS 执行 postgres db init 的批处理文件给出权限被拒绝

    跟随我的上一个问题 https stackoverflow com questions 30924913 how to install postgres with nsis with all parameters我现在尝试通过 NSIS 代
  • 将 StackNavigator 与 TabNavigator 集成

    如何组合 StackNavigator 和 TabNavigator 我的以下代码有效 索引 android js import React Component from react import AppRegistry Text View
  • SQL Server 错误:“SQL Server 子查询返回超过 1 个值”

    子查询返回超过 1 个值 当子查询跟在 gt 后面或子查询用作表达式时 这是不允许的 我在调试以下代码时收到此有线错误消息 WHEN NOT EXISTS SELECT 1 FROM defs WITH NOLOCK WHERE defau
  • Neo4J 数据库大小/缩小

    我们有一个包含约 1000 万个节点和约 3 亿个关系的 Neo4j 数据库 数据库已增长至约 80 Gig 日常工作会删除旧数据并添加新数据 因此节点和关系的大约数量保持相当恒定 然而 db 文件的物理文件大小不断增长 例如 relati
  • 具有多核 CPU 的 JAX pmap

    使用多核CPU的正确方法是什么jax pmap 以下示例在 CPU 核心后端上为 SPMD 创建环境变量 测试 JAX 是否识别设备 并尝试设备锁定 import os os environ XLA FLAGS xla force host
  • 使用 XUnit 进行 .Net Core DynamodDB 单元测试

    使用C net core 2 0 dynamo db 我有我的 Web api 它与我的 dynamo db 数据库交互 具有 Get 和 Post 方法 方法示例 HttpGet api data public async Task
  • 使用 JAXB 编译多个包含同一元素的重复定义的 XSD

    问题 如何使 xjc Jaxb 为同一命名空间中包含重复元素定义的多个模式生成正确的 java 类 信息 我有三个 xsd 模式 A B 和 C 它们都具有相同的目标命名空间 它们都是给我的 3 个 shemas 我无论如何都不允许以任何方
  • 如何使用 setBorder 和 JFrame 在 Java 中为矩形添加边框

    我正在尝试添加边框Rectangle元素 由于某种原因它无法工作 是否与JFrame 我可以设置我的整个JFrame有边界 但找不到setBorder和我的矩形 这是我的代码 package trivia import java awt C
  • 在 Mocha 测试中使用 for 循环

    我是摩卡新手 我想尝试使用 for 循环来创建测试用例 我想测试我制作的一个函数 该函数接受标准 12 小时时间的输入 并将其输出为 24 小时军用时间 这就是它的样子 exports main function time var hr p
  • 相邻的 svg:多边形边不相交

    我正在使用彼此相邻的多边形绘制条形图 如下所示 如果仔细观察 每个多边形之间都有空白 放大 我正在努力阻止这种情况发生 我发现了 SVGshape rendering https developer mozilla org en US do
  • JPA CascadeType Persist 不适用于 Spring 数据

    我有两个实体 用户 Data EqualsAndHashCode exclude id Entity Table name users public class User Id SequenceGenerator name user id
  • 合并TFS中的多个文件

    我们使用 TFS 作为我们软件的版本控制系统 目前该软件在两个独立的分支中有两个版本 分支 版本1 0 和分支 版本2 0 版本 1 0 中的每个修复都必须合并到 版本 2 0 中 我从要合并的文件的上下文菜单中手动合并 我的问题是 某些修
  • 如何在 Android 中将 JSON ARRAY 数据发布到服务器

    我想将以下 JSON 数据发送到服务器并读取 android 中的响应 下面是 Json 数据 class OrderItemListDto orderItemList class OrderItemDto orderId 24 itemI
  • 如果在单个查询中 $pull 之后数组计数为零,mongodb 会删除文档

    我有一个要求 我的comments架构如下所示 id 1 comments userId 123 comment nice userId 124 comment super 我想根据以下内容提取元素userId场地 我正在执行以下查询 co
  • 使用 tr1 在 C++ 中生成超出范围的随机数

    我试图从 0 1 范围内的实数均匀分布生成数字 但编译器生成的数字超出了 0 1 范围 这是代码 int main void Solver solve mt19937 mteng mteng seed rdtsc uniform real
  • Leaflet图层控件仅在单击时打开

    有没有办法只在单击时打开传单图层控件 默认情况下 当鼠标悬停 鼠标移开时它会展开 折叠 我只想点击打开 您可以使用一些 jQuery 来完成此任务 将 折叠 选项设置为 false 然后创建一个按钮来显示 隐藏图层控件 btn onclic
  • 通过flutter在Firestore中添加嵌套数据

    我来自以下问题 如何在 Firebase 中管理添加和更新数据 https stackoverflow com questions 61910157 how to manage add and update data in firebase
  • 如何获取UIImage中形状的UIBezierPath或将UIImage裁剪为某种形状

    我是 iOS 新手 我想知道我是否可以获得UIBezierPath of a UIImage 我有一个UIImage的面部布局并想要得到UIBezierPath 这有助于我裁剪UIImage 或者谁能 告诉我其他裁剪方法UIImages 但