gpt4 book ai didi

iphone - CGImageCreateWithMask 效果很好,但在我生成的图像中被屏蔽的区域是黑色的,我如何将它设置为白色?

转载 作者:太空狗 更新时间:2023-10-30 03:49:47 24 4
gpt4 key购买 nike

我已经掩盖了我的形象:

    CGImageRef maskRef = [[UIImage imageNamed:@"testMask2.png"] CGImage];

CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), nil, YES);

UIImage *image = [UIImage imageWithContentsOfFile:path];

CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);

imageView.image = [UIImage imageWithCGImage:masked];

效果很好,但是生成的图像在被遮盖的地方有黑色,我怎样才能将它设置为在被遮盖的地方有白色?

最佳答案

如果您正在屏蔽没有 alpha channel 的 JPEG 图像,则会发生这种情况(黑色背景而不是透明背景)。

所以你需要在屏蔽之前做这样的事情:

    CGImageRef imageNoAlpha = [UIImage imageNamed:@"noAlphaImage.jpg"].CGImage;

CGColorSpaceRef cs = CGColorSpaceCreateDeviceRGB();

CGFloat width = CGImageGetWidth(imageNoAlpha);
CGFloat height = CGImageGetHeight(imageNoAlpha);

CGContextRef ctxWithAlpha = CGBitmapContextCreate(nil, width, height, 8, 4*width, cs, kCGImageAlphaPremultipliedFirst);

CGContextDrawImage(ctxWithAlpha, CGRectMake(0, 0, width, height), imageNoAlpha);

CGImageRef imageWithAlpha = CGBitmapContextCreateImage(ctxWithAlpha);

CGImageRef masked = CGImageCreateWithMask(imageWithAlpha, mask);

...

一定要发布创建的图像、上下文和色彩空间......

关于iphone - CGImageCreateWithMask 效果很好,但在我生成的图像中被屏蔽的区域是黑色的,我如何将它设置为白色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3848430/

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