ios – CGContextSetFillColorWithColor:无效上下文0x0

前端之家收集整理的这篇文章主要介绍了ios – CGContextSetFillColorWithColor:无效上下文0x0前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
CGContextSetFillColorWithColor:无效的上下文0x0.这是一个严重的错误.该应用程序或其使用的库正在使用无效的上下文,从而有助于整体降低系统的稳定性和可靠性.这个通知是礼貌的:请解决这个问题.这将在即将到来的更新中成为致命的错误.

我从这个方法的[color setFill]行得到错误.有什么想法可以解决吗?

+ (UIImage *)fillImage:(UIImage*)image withColor:(UIColor *)color
{

    // begin a new image context,to draw our colored image onto
    UIGraphicsBeginImageContextWithOptions(image.size,NO,[[UIScreen mainScreen] scale]);

    // get a reference to that context we created
    CGContextRef context = UIGraphicsGetCurrentContext();

    // set the fill color
    [color setFill];

    // translate/flip the graphics context (for transforming from CG* coords to UI* coords
    CGContextTranslateCTM(context,image.size.height);
    CGContextScaleCTM(context,1.0,-1.0);

    // set the blend mode to overlay,and the original image
    CGContextSetBlendMode(context,kCGBlendModeOverlay);
    CGRect rect = CGRectMake(0,image.size.width,image.size.height);
    //if(overlay) CGContextDrawImage(context,rect,img.CGImage);

    // set a mask that matches the shape of the image,then draw (overlay) a colored rectangle
    CGContextClipToMask(context,image.CGImage);
    CGContextAddRect(context,rect);
    CGContextDrawPath(context,kCGPathFill);

    // generate a new UIImage from the graphics context we drew onto
    UIImage *coloredImg = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    //return the color-burned image
    return coloredImg;
}

解决方法

您的image.size无效,因此UIGraphicsBeginImageContextWithOptions不会创建图形上下文. image.size.width都必须是正数,有限数.

图像本身可能是零.当您将大小消息发送到nil时,您将返回CGSizeZero.

猜你在找的iOS相关文章