gpt4 book ai didi

iphone - 通过触摸编辑 CGImage(或 UIImage)的 alpha 然后显示的最快方法?

转载 作者:行者123 更新时间:2023-12-03 20:11:04 25 4
gpt4 key购买 nike

我有两个 ImageView ,一个在另一个之上,有两个不同的图像。当用户触摸图像并移动他/她的手指时,顶部图像应该沿着具有固定半径的触摸点变得透明。 (如 PhotoChop 应用程序)。

目前我正在这样做......

  1. 每次触摸。
  2. 从顶部图像的 CGImage 获取图像缓冲区的副本。
  3. 编辑缓冲区的 Alpha channel 以创建以触摸点为中心的透明圆圈。
  4. 从缓冲区创建新的 CGImage。
  5. 从 CGImage 创建 UIImage 并使用新的 UIImage 作为顶部 ImageView 的图像。

这可行,但正如您所看到的,涉及太多复制、创建,而且速度很慢。

有人可以建议我一种更快的方法来做同样的事情吗?

最佳答案

CGImageCreateWithMask

当用户绘制时,根据更改修改CGBitmapContext。保留引用上下文的链接CGImage。从原始图像和蒙版创建一个蒙版图像,并从中创建一个 UIImage

CGImage 以及 CGBitmapContext 必须是灰度的。您可以使用 CGImageMaskCreateCGImageCreate 来制作图像,但首选前者。

我不确定其内部结构,但可能每次绘制 UIImage 时,它都会一直引用回 CGBitmapContext。换句话说,我认为不会复制任何内容,您所需要的只是包含 UIImage 的 View 上的 setNeedsDisplay

关于iphone - 通过触摸编辑 CGImage(或 UIImage)的 alpha 然后显示的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2796849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com