问题标签 [cgimagemaskcreate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1158 浏览

iphone-sdk-3.0 - 使用 CGImage 用 alpha 替换 UIImage 中的所有白色/接近白色像素?

我有一个白色背景的 UIImage。我想用 alpha 透明像素替换白色背景/像素。我查看了 StackOverflow 上的其他问题以及 Quartz 文档,但还没有为这个问题找到一个连贯的“从头到尾”。这是怎么做到的?

0 投票
2 回答
1328 浏览

objective-c - cgimagemaskcreate 和内存泄漏,如何修复它

我有这个代码:

静态分析器这样写道:1)调用函数 CGImageMaskCreate 返回一个核心基础对象,该对象具有 +1 保留计数器 2)分配并存储到掩码中的对象在此执行路径中稍后未引用,并且保留计数器为 +1 [掩码释放]不工作......面具不是一个指针......我该如何解决这个泄漏?

0 投票
0 回答
348 浏览

objective-c - 将 UIImageView 中的手绘图变成蒙版

我正在制作一个应用程序,让用户在图像中绘制对象/人,然后我想充当蒙版以模糊图像的背景。

我正在使用以下代码来允许用户在图像视图上方的图像视图上绘制要操作的图像:

这可以正常工作并达到我想要的结果,然后我可以在应用程序中按照我的意愿保存这个绘图图像。

但是,我希望能够将绘图制作成蒙版,以便我可以将其应用于原始图像和模糊图像,以使蒙版下的对象出现在焦点上。

有没有办法可以把图纸变成面具?

0 投票
0 回答
216 浏览

ios - 如何让 CGImageMaskCreate 在 3.5 英寸设备上工作?

这是给经验丰富的 iOS 开发者的一个问题。

Core Graphics 函数CGImageMaskCreate从灰度图像创建 CG 图像蒙版。我正在使用导出为灰度的 JPG。我仔细检查了:在 Photoshop 中打开时,转到图像 > 模式 > 它显示“灰度”。

以下方法是 UIImage 类别的一部分。它需要一个遮罩 UIImage(只是一个灰度 JPG),它的目标是遮罩自己(一个 UIImage,它是一张 JPG 照片),因此生成的图像具有透明度。

它适用于所有 4 英寸设备和 iPad 4。但 CGImageMaskCreate 的输出在任何装有 iOS 6 或 iOS 7 的 3.5 英寸设备上都是无效的。也就是说,生成的图像只是 100% 透明。在 iPhone 模拟器 3.5 英寸(Xcode 5)中也是如此。我不知道为什么。有人说这是 iOS 7 的问题,但它适用于 iOS 7 的 iPhone 5 和 5S。我也尝试了 PNG-8 灰度,结果相同。

是否有来自 Apple 的已知 TN 或此错误的解决方法?

编辑:

在 3.5 英寸 iPhone 模拟器和设备上 CGImageIsMask(mask) 返回 NO。在 4 英寸模拟器和设备上,它返回 YES。所以 CGImageMaskCreate 有时肯定不会创建蒙版。

0 投票
1 回答
1865 浏览

ios - 屏蔽后如何去除 UIImageView 的透明区域?

在我的一个 iOS 应用程序中,我正在尝试使用CGImageMask. 我已成功使用以下代码屏蔽图像:

所以,我的形象将是:

问题: 输出图像与参考图像('image.png')大小相同,周围有透明区域。但我想避开那些透明区域,并裁剪结果图像。我怎样才能做到这一点?有几个蒙版,而且蒙版框架并不都相似。我在此处附上了问题概述的参考图像。请朋友们帮帮我。提前致谢。

在此处输入图像描述

0 投票
0 回答
427 浏览

swift - 遮蔽进度 UIImage

我有一个 UIImage,我计划为其创建一个掩码,以便当用户继续完成注册过程时,他们会看到从非活动到活动到完成的每个数字(复选标记)。我还创建了一个“错误”标志,如果出现错误,我想放置它。这有点像 pageviewcontroller,但我不想使用 pageviewcontroller。它们是 5 个圆圈,在活动或非活动时会改变颜色,完成时会变为复选标记或“X”表示错误。我应该使用 CGImageMaskCreate 还是 CALayer?这是我到目前为止所拥有的:

func progressImage(名称:字符串)-> UIImage {

}

func maskImage(image:UIImage, mask:(UIImage))->UIImage {

}

覆盖 func viewDidLoad() { super.viewDidLoad()

0 投票
2 回答
782 浏览

objective-c - 宽颜色范围的位图上下文

我正在尝试使用 kCGColorSpaceDisplayP3 颜色空间创建一个图像蒙版,以支持 iPhone 7 的广泛颜色范围。

在使用 iOS 10 和更早版本的 iOS 的 iPhone 6 和更早版本的设备上使用 sRGB 颜色空间时,我能够正确创建图像蒙版。但我不知道使用 kCGColorSpaceDisplayP3 创建色彩空间时哪里出错了:

日志说:

:CGImageMaskCreate:无效的掩码位/组件:32。

我对Core Graphics没有太多经验。任何人都可以在这里提出一些建议。

谢谢。

0 投票
2 回答
956 浏览

ios - 核心图形 CGImage 蒙版不影响

我实际上想要做的是有一个文本标签“切”一个穿过视图的文本形孔。我试过使用self.mask = uiLabel,但那些拒绝正确定位文本,所以我通过 Core Graphics 来解决这个问题。

这是不起作用的代码(在 中draw(_ rect: CGRect)):

基本上我已经成功地创建了代码来创建一个CGImagemask变量),这是我想应用于整个图像的掩码。

替换context.draw(mask, in: rect)(以查看掩码)时的标记线正确显示。掩码(正确)显示为:

在此处输入图像描述

然而,一旦我尝试应用这个面具(使用context.clip(to: rect, mask: mask)),什么都没有发生!实际结果:

没有任何改变

期望的结果是:

期望的结果

但由于某种原因,未正确应用蒙版。


这段代码似乎应该可以工作,因为我一遍又一遍地阅读了文档。我还尝试在单独的 CGContext 中创建掩码,但没有成功。此外,当我尝试将 CGImage( mask) 转换为CGColorSpaceCreateDeviceGray()using.copy(colorSpace:)时,它返回了nil。我已经在这两天了,所以任何帮助表示赞赏