iPhone:通过给定的 CGPath 剪辑用户提供的 UIImage

2024-01-06

在我的iPhone应用程序中,我需要让用户剪辑用户提供的UIImage通过给定的动态生成CGPath.

所有外部给定的(已关闭)CGPath应该被剪掉,并且生成的图像应该被路径的边界矩形修剪。

图像应使用软边框进行裁剪。也就是说,剪切路径边缘的 Alpha 通道中应该有一个从透明像素到不透明像素的软渐变。

有没有可行的解决方案来达到所描述的效果?

主要问题是如何获得软渐变。我想过光栅化我的CGPath到蒙版并在光栅化后对其进行模糊处理,但我没有在 iPhone API 中发现任何有关模糊的信息......

至于剪辑,我计划使用CGPathGetBoundingBox数据,但重新阅读文档告诉我,生成的边界框将包括贝塞尔曲线和二次曲线的控制点,这对我来说是不可接受的。好吧,传统的非零 Alpha 像素图像扫描应该可以完成这项工作。


对于边界框,使用CGPathGetPathBoundingBox,其中不包括控制点。

您将在 CoreImage 中找到过滤(如模糊)。

CoreImage 过滤器的基本用法(来自https://developer.apple.com/library/mac/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_tasks/ci_tasks.html#//apple_ref/doc/uid/TP30001185-CH3-TPXREF101 https://developer.apple.com/library/mac/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_tasks/ci_tasks.html#//apple_ref/doc/uid/TP30001185-CH3-TPXREF101)

CIContext *context = [CIContext contextWithOptions:nil];
CIImage *image = [CIImage imageWithContentsOfURL:myURL];
CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone"];
[filter setValue:image forKey:kCIInputImageKey];
[filter setValue:@0.8f forKey:kCIInputIntensityKey];
CIImage *result = [filter valueForKey:kCIOutputImageKey];
CGRect extent = [result extent];
CGImageRef cgImage = [context createCGImage:result fromRect:extent];

Filters:

https://developer.apple.com/library/mac/documentation/GraphicsImaging/Reference/CoreImageFilterReference/index.html#//apple_ref/doc/uid/TP40004346 https://developer.apple.com/library/mac/documentation/GraphicsImaging/Reference/CoreImageFilterReference/index.html#//apple_ref/doc/uid/TP40004346

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

iPhone:通过给定的 CGPath 剪辑用户提供的 UIImage 的相关文章

  • 多次显示admob插页式广告怎么办?

    我有一个小型游戏应用程序 它有一个故事板 里面创建了像开始菜单 游戏区域 分数这样的场景 我在其中添加了 admob 横幅视图和插页式广告 我的横幅视图工作正常 但我的插页式广告只能工作一次 我在 viewdidload 上加载插页式广告
  • 在 iPhone 5 的横向模式下启动启动画面

    我们的通用应用程序仅适用于横向模式 我们需要为 iPhone 4 和 iPhone 5 添加启动画面 对于 iPhone 5 的肖像 我们使用 email protected cdn cgi l email protection 如何为 i
  • MPMoviePlayerController 播放 YouTube 视频

    如何在 iPhone 上的 MPMoviePlayerController 中播放 YouTube 视频 同时避免进入全屏模式 这个问题已经在这里提出 MPMoviePlayerController 正在播放 YouTube 视频吗 htt
  • 从 Xcode 更改按钮文本?

    我有一个 IBAction 连接到 Interface Builder 中的一个按钮 是否可以在运行时从我的代码中更改按钮 在 IB 中 上的文本 如果您的代码中有一个连接到某个操作的按钮 则无需实例变量即可更改标题 例如 如果按钮设置为以
  • UITextInputMode currentInputMode 已弃用。建议更换?

    在我们的应用程序中 我们想检测当前的键盘语言 例如 如果用户在 设置 gt 常规 gt 键盘 gt 键盘 下设置了多种语言键盘 我们想知道他们正在输入什么语言 并在发生变化时从 NSNotificationCenter 收到通知 void
  • 如何在pop UIViewController中删除UIParallaxDimmingView?

    我有一个UIViewController vc1这是在之后推送的UIViewController vc2 Both vc1 and vc2具有透明背景 问题 当我尝试弹出时vc2使用交互式弹出手势 从边缘平移 在我看来堆栈显得很神秘UIPa
  • 强制向扬声器发出音频警报

    我有一个小应用程序 在此应用程序中 扬声器每隔我设置的特定时间就会发出噪音 现在 我希望即使设备中插入了耳机插孔 它也能通过内置扬声器发出噪音 我怎样才能做到这一点 您可以尝试以下代码在扬声器上播放代码 另请检查this http uiha
  • 如何链接到 App Store (iTunes) 中我的应用程序?

    我希望我的应用程序中有一项功能 用户可以使用我的应用程序的 iTunes URL 向朋友发送电子邮件 这怎么可能 Thanks 您可以创建更简单 更合乎逻辑的 App Store 链接 而不是通常看到的又长又混乱的 URL iTunes S
  • 从 iPhone 设备查找当前国家/地区

    我必须在 iPhone 设置中获取当前国家 地区 谁能告诉我如何在 iPhone 应用程序中获取当前国家 地区 我必须使用当前国家 地区来解析需要传递当前国家 地区的 RSS 提要 请帮我找到那个国家 提前致谢 要查找用户选择的语言所在的国
  • 苹果游戏中心 API

    我无法找到包含 Game Center Reference 的 GameKit api Apple Game Center 是 iOS 上的一个新社交网络平台 其描述如下 iOS4 中的新增功能 1 GameKit iOS 参考在这里 ht
  • 适用于 iPhone 和 HTTP 直播的实时视频聊天

    所以一般来说 我想为 iPhone 制作一个具有视频聊天功能的应用程序 但经过多次搜索 我仍然找不到任何成功的结果 是否有任何公共或私有 API 可用于在 iPhone 上执行此操作 如果您的答案是 是 请帮助我 基本上 我想要的是读取连接
  • iPhone SDK:拖动 UIImageView 时出现问题

    我正在尝试在我的应用程序中拖动 iPhone 屏幕上的 UIImageView 目前我设置的拖动功能很好 拖动图像确实会在屏幕上移动它 问题是你不必拖动图像视图来移动它 你也可以拖动屏幕上的任何地方 它会移动图像 我是这个平台的新手 所以我
  • UIView 和 UITableView 中的 UITapGestureRecognizer 冲突

    我有一个UIView我在其中添加了一个UITapGestureRecognizer 在该视图中 我还有一个子视图 其中基本上是某种UITableView 问题是为什么不UITableView识别连续点击 而是始终转到点击手势识别器的处理程序
  • 基于 ID 的 UiLocalNotifications

    是否有关于根据那里的 Id 存储 UIlocalNotifications 并根据那里的 Id 取消通知的教程 在本地通知中 您有此词典的用户词典 您可以取消通知 http www picksourcecode com ps ct 1612
  • iPhone SDK:将 UIActivityIndi​​catorView 添加到 UITableViewCell

    为什么单元格在这段代码中没有显示任何内容 UIActivityIndicatorView spinner UIActivityIndicatorView alloc initWithActivityIndicatorStyle UIActi
  • 以编程方式检测应用程序是否正在设备或模拟器上运行

    我想知道我的应用程序在运行时是在设备还是模拟器上运行 有没有办法检测到这一点 原因是用模拟器测试蓝牙 api http volcore limbicsoft com 2009 09 iphone os 31 gamekit pt 1 woo
  • iPhone OS 3.0.1 会毁掉你的开发手机吗?

    我将手机更新到3 0 1 虽然手机作为手机工作正常 xcode http en wikipedia org wiki Xcode组织者不再知道手机的名称 它还说这个版本的 xcode 不支持 3 0 1 我下载了最新版本的xcode和操作系
  • iPhone 应用程序中的文本在 ipad 中的 2x 模式下出现别名

    我有一个适用于 iPhone 的应用程序 使用高分辨率图像使其适用于 iPhone 和 iPad 但在 iPad 中 所有文本在 2x 模式下都会出现别名 是否可以让App在2x模式下自动改变字体大小 或者我必须手动检测设备类型并处理字体大
  • iPhone AVFoundation 相机方向

    我一直在绞尽脑汁地试图让 AVFoundation 相机以正确的方向 即设备方向 捕获图片 但我无法让它工作 我看过教程 看过 WWDC 演示 还下载了 WWDC 示例程序 但即使这样也没有成功 我的应用程序的代码是 AVCaptureCo
  • 如何将unix时间戳转换为iphone中的nsdate [重复]

    这个问题在这里已经有答案了 可能的重复 从 Unix 时间戳创建 NSDate https stackoverflow com questions 5827240 create nsdate from unix timestamp 我有一个

随机推荐

  • 如何将源文件添加到另一个文件夹中

    我正在使用 cmake 在 C 中构建我的项目 假设我的源文件夹中有以下目录 Source Dir1 Class cpp Class hpp Dir2 Main cpp 在 Dir1 中有一个类及其头文件和实现文件 Class cpp 和
  • ContentEditable 上可靠的跨浏览器信息

    我正在寻找完全支持使用 ContentEditable 的 Web 浏览器列表 我知道IE从5或5 5开始就支持它 但是其他浏览器呢 我知道 Chrome Flock Maxthon Opera 和 I E 的现代版本都支持它 但我不关心现
  • 加载 DB2 JDBC 驱动程序时出现 java.lang.UnsatisfiedLinkError

    我尝试将jboss seam与db2数据库一起使用 出现以下错误 com ibm db2 jcc a SqlException jcc 10389 12245 3 52 95 while loading the native library
  • 在Python中,是否有async相当于multiprocessing或concurrent.futures?

    基本上 我正在寻找使用 python3 协程作为后端而不是线程或进程提供并行映射的东西 我相信执行高度并行 IO 工作时应该有更少的开销 当然类似的东西已经存在了 无论是在标准库中还是在一些广泛使用的包中 免责声明 PEP 0492 htt
  • 使用 Typescript 设置 Vue 数据对象中的数据类型

    我目前正在 webpack 项目中使用 Vue js 和 Typescript 如中所示推荐配置 https v2 vuejs org v2 guide typescript html in my tsconfig json I have
  • 将字符串转换为 LatLng

    我正在使用 Google Maps API v2 并且从 SharedPreferences 中获取位置坐标单个字符串 34 8799074 174 7565664 我需要将其转换为 LatLng 有人可以帮忙吗 Thx 谷歌地图Andro
  • Caliburn.Micro 将 MainView 中的 UserControls 绑定到其 ViewModel

    我有一个 MainView xaml 绑定到 MainViewModel 就可以了 我想尝试的是将主窗体上的许多控件拆分为用户控件 现在 我将 UserControls 与 MainView 一起放入 Views 文件夹中 并将它们命名为
  • 我在 KubernetesPodOperator 的 DAG 设置中做错了什么

    我在这个中找到了以下Airflow DAG博客文章 https kubernetes io blog 2018 06 28 airflow on kubernetes part 1 a different kind of operator
  • Spritekit - 创建一堵“墙”

    我想知道如何用 spritekit 创建一堵墙 物体上的某些东西无法移动过去 我知道我可以使用这段代码 self physicsBody SKPhysicsBody bodyWithEdgeLoopFromRect self frame 但
  • JavaScript 对象检测:点语法与“in”关键字

    我见过两种检测 UA 是否实现特定 JS 属性的方法 if object property and if property in object 我想听听关于哪个更好的意见 最重要的是 为什么 其中一个明显优于另一个吗 除了这两种方法之外还有
  • 获取CPU温度

    我想知道CPU的温度 以下是我使用 C 和 WMI 所做的工作 我正在读取 MSAcpi ThermalZoneTemperature 但它始终相同 而且根本不是 CPU 温度 有没有办法不用写驱动就能获取CPU的真实温度 或者有什么我可以
  • OpenXML SDK C++ 示例

    HI 我正在尝试使用 OpenXML SDK 在 C 中创建一个 Word 文档 我在添加引用和使用命名空间时遇到问题 因为网上的大多数示例都是基于 C 给出的 1 如何在代码中添加对项目的引用并使用命名空间 例如 using namesp
  • 邮政信箱验证

    希望验证邮政信箱 但想知道是否存在此类验证 我将 地址 字段分为 地址 1 和 地址 2 此类 PO Apt Suite 信息所在的位置 Example Address 1 123 Main Street Address 2 Suite 1
  • Hadoop MapReduce 出现“无法解析主机名”错误

    现在我运行Hadoop MapReduce作业 输入数据来自HBase表 最近出现错误 错误如下 错误mapreduce TableInputFormatBase 无法解析 172 16 4 195的主机名 因为javax naming N
  • pandas“未命名”列不断出现

    我遇到一个问题 每次运行程序 从 csv 文件读取数据帧 时 都会显示一个名为 未命名 的新列 运行 3 次后的示例输出列 Unnamed 0 Unnamed 0 1 Subreddit Appearances 这是我的代码 对于每一行 未
  • 将按钮添加到 WinForms 的列表视图中

    有没有办法将按钮控件添加到 WinForms 应用程序中 ListView 内的单元格 这是一个类的代码ListViewExtender您可以重复使用 它不是一个派生类ListView 基本上您只需声明特定列显示为按钮而不是文本 按钮的文本
  • 如何在 Asp.Net Identity 中获取用户的角色名称

    我想弄清楚如何在身份框架中查找用户角色名称 我的配置是 只有一个角色分配给用户 所以 我尝试使用 public string GetUserRole string EmailID string Password var user await
  • 如何释放 glBufferData 内存

    我创建了一个顶点缓冲区对象类来管理应用程序中的大量顶点 用户调用构造函数创建glBuffer 并调用glBufferData分配指定大小的空间 有一个名为 resize 的类函数 允许用户通过再次调用 glBufferData 来更改 VB
  • 在响应式中隐藏图像?

    我是引导程序编码的新手CSS我遇到了一个问题 在桌面版本中我需要一个图像 但当涉及到移动版本时 我需要显示第二个图像 而第一个图像应该隐藏 div class col md 9 style padding 0px img src image
  • iPhone:通过给定的 CGPath 剪辑用户提供的 UIImage

    在我的iPhone应用程序中 我需要让用户剪辑用户提供的UIImage通过给定的动态生成CGPath 所有外部给定的 已关闭 CGPath应该被剪掉 并且生成的图像应该被路径的边界矩形修剪 图像应使用软边框进行裁剪 也就是说 剪切路径边缘的