CIImage ChromaKey滤镜无法过滤目标颜色问题求助
图片背景色透明化残留问题
我需要将图片中的指定颜色设置为透明,比如去除图片里的深红色区域并让其变为透明状态(在PDF中查看时,透明区域会匹配侧边的粉色背景)。我参考Apple官方文档的代码进行了如下修改:
// 第三层循环内的代码 let hue = getHue(red: red, green: green, blue: blue) let wantedHue = getHue(red: myPixel.redComponent, green: myPixel.greenComponent, blue: myPixel.blueComponent) let isHueInRange = hue >= wantedHue - 0.1 && hue <= wantedHue + 0.1 let alpha:CGFloat = isHueInRange ? 0 : 1
处理后仍存在颜色残留,背景并未完全透明。由于需要动态移除图片背景色(图片仅包含文字和矩形,无复杂对象与混色情况),我获取了图片首个像素的色调并手动设置了0.2的允许范围,同时假设图片中不存在与目标色调相似的颜色。
补充信息:
- 目标移除颜色:rgb(200, 39, 39) - hsv(200, 80.5, 78.4)
- 残留颜色:rgb(246, 215, 210) - hsv(352, 14.6, 96.5)
原始图片:
处理后图片:
内容的提问来源于stack exchange,提问作者Jason Krowl
相关产品推荐
相关产品推荐

