因此,我有一个应用程序,您可以在其中移动图像的特定位置并将其分层。它进展顺利,但是我一直遇到的一个问题是,我的很多图像周围都有空白(它们以前是jpgs),空白始终是十六进制代码#FFFFFF纯空白,所以我想知道是否有一种客观的方法-c掩盖图像中的所有十六进制代码?我会手动编辑图像,但是有成千上万的第三方图像。有任何想法吗?
我在这里找到了一种很棒的方法,可以将其放置在当前的.h文件中:
+(UIImage *)changeWhiteColorTransparent: (UIImage *)image
{
CGImageRef rawImageRef=image.CGImage;
const float colorMasking[6] = {222, 255, 222, 255, 222, 255};
UIGraphicsBeginImageContext(image.size);
CGImageRef maskedImageRef=CGImageCreateWithMaskingColors(rawImageRef, colorMasking);
{
//if in iphone
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();
return result;
}
因此,只需将您的图像传递给此方法,如下所示:
UIImage *newImage = [self changeWhiteColorTransparent: yourOldImage];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句