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

前端之家收集整理的这篇文章主要介绍了iOS UIImage如何以编程方式将黑色转换为透明?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个悬停在按钮上的图标.图标为黑色和白色,我想以编程方式“剪切”黑色区域.

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

解决方法

您可以使用核心图像过滤器 – 特别是过滤器 CIMaskToAlpha

有关使用CIFilters的详细说明,请参见Apple’s Core Image Programming GuideRayWenderlich tutorial

编辑:此滤镜采用黑色像素并使其完全透明,并将像素白色替换为不透明,灰色替换为部分透明等.

-(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];
}
原文链接:https://www.f2er.com/iOS/328190.html

猜你在找的iOS相关文章