gpt4 book ai didi

ios - 如何在 UIImage 中使一种颜色透明

转载 作者:可可西里 更新时间:2023-11-01 05:55:03 25 4
gpt4 key购买 nike

我想将 UIimage 中的颜色更改为透明 我正在使用以下代码将黑色更改为透明

-(void)changeColorToTransparent: (UIImage *)image{
CGImageRef rawImageRef = image.CGImage;
const float colorMasking[6] = { 0, 0, 0, 0, 0, 0 };
UIGraphicsBeginImageContext(image.size);
CGImageRef maskedImageRef = CGImageCreateWithMaskingColors(rawImageRef, colorMasking);
{
CGContextTranslateCTM(UIGraphicsGetCurrentContext(), 0.0, image.size.height);
CGContextScaleCTM(UIGraphicsGetCurrentContext(), 1.0, -1.0);
}

CGContextDrawImage(UIGraphicsGetCurrentContext(), CGRectMake(0, 0, image.size.width, image.size.height), maskedImageRef);
UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
CGImageRelease(maskedImageRef);
UIGraphicsEndImageContext();
}

它工作正常..但我想通过选择颜色选择器的颜色在图像上画一个点,然后想让那个点透明..我不知道如何在下面的行中给颜色掩蔽值

const float colorMasking[6] = { 0, 0, 0, 0, 0, 0 };

谁能帮我把颜色变成透明

最佳答案

来自docs :

components

An array of color components that specify a color or range of colors to mask the image with. The array must contain 2N values { min1, max1, ... min[N], max[N] } where N is the number of components in color space of image. Each value in components must be a valid image sample value. If image has integer pixel components, then each value must be in the range [0 .. 2**bitsPerComponent - 1] (where bitsPerComponent is the number of bits/component of image). If image has floating-point pixel components, then each value may be any floating-point number which is a valid color component.

用简单的英语来说,如果您有一个典型的 RGB 图像(RGB 是颜色空间的名称),那么您有 3 个分量:R(红色)、G(绿色)和 B(蓝色),每个分量的范围从 0 到 255(2**8 - 1,假设每个组件 8 位)。

因此,colorMasking 定义了每个要透明的组件的取值范围,即 colorMasking 中的第一个元素是最小的红色组件,第二个是最大的红色分量,第三个是最小的绿色分量,依此类推。

结果图像将是具有一些透明像素的输入图像。哪个像素? RGB 值位于您在 colorMasking 中设置的范围内的那些。

在您的示例中,数组全为零,因为您想让黑色透明(请记住,RGB 中的黑色是 (0,0,0))。

关于ios - 如何在 UIImage 中使一种颜色透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19443311/

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