iOS UIImage如何以编程方式将黑色转换为透明?

亚历克斯·斯通

我有一个悬停在按钮上方的图标。该图标是白色的黑色,我想以编程方式“切出”黑色区域。

如何以编程方式将图标的黑色区域转换为透明区域?

在此处输入图片说明

铸造厂

您可以使用核心图像滤镜-尤其是滤镜 CIMaskToAlpha

有关使用CIFilter的详细说明,请参阅Apple的Core Image编程指南RayWenderlich教程。

编辑:此滤镜采用黑色像素并使它们完全透明,并用不透明替换白色像素,用部分透明替换灰色像素,等等。

-(void)setImage:(UIImage *)image_
{

    UIImage *entryImage  = image_;
    CIContext *context = [CIContext contextWithOptions:nil];

    CIImage *image = [CIImage imageWithCGImage:[entryImage CGImage]];
    CIFilter *filter = [CIFilter filterWithName:@"CIMaskToAlpha"];
    [filter setDefaults];
    [filter setValue:image forKey:kCIInputImageKey];
    //    CIImage *result = [filter valueForKey:kCIOutputImageKey];
    CIImage *result = [filter outputImage];

    CGImageRef cgImage = [context createCGImage:result fromRect:[result extent]];

    UIImage *newImage = [UIImage imageWithCGImage:cgImage scale:[entryImage scale] orientation:UIImageOrientationUp];
    CGImageRelease(cgImage);
    [super setImage:newImage];
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档