У меня есть этот кусок кода, чтобы дать моим изображениям цвет мне нужно:CGContextFillRects: недопустимый контекст - Objective C
- (UIImage*)convertToMask: (UIImage *) image
{
UIGraphicsBeginImageContextWithOptions(image.size, NO, image.scale);
CGRect imageRect = CGRectMake(0.0f, 0.0f, image.size.width, image.size.height);
CGContextRef ctx = UIGraphicsGetCurrentContext();
// Draw a white background (for white mask)
CGContextSetRGBFillColor(ctx, 1.0f, 1.0f, 1.0f, 0.9f);
CGContextFillRect(ctx, imageRect);
// Apply the source image's alpha
[image drawInRect:imageRect blendMode:kCGBlendModeDestinationIn alpha:1.0f];
UIImage* outImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return outImage;
}
Все прекрасно работает в моем первом взгляде, но когда я добавляю это мой взгляд детали, то дает мне эту ошибку (она все еще работает):
CGContextSetRGBFillColor: недопустимый контекст 0x0. Это серьезная ошибка. Это приложение или используемая им библиотека использует недопустимый контекст и тем самым способствует общему ухудшению стабильности и надежности системы. Это уведомление является любезностью: устраните эту проблему. Это станет фатальной ошибкой в предстоящем обновлении.
CGContextFillRects: недопустимый контекст 0x0. Это серьезная ошибка. Это приложение или используемая им библиотека использует недопустимый контекст и составляет , тем самым способствуя общей деградации стабильности системы и надежности . Это уведомление является любезностью: устраните эту проблему. Это станет фатальной ошибкой в предстоящем обновлении.
Любая идея, как избавиться от этой ошибки?
Спасибо.
EDIT:
Акция была вызвана с нуля для изображения. Я легко исправил это, добавив условие. Спасибо @ipmcc за комментарий.
- (UIImage*)convertToMask: (UIImage *) image
{
if (image != nil) {
UIGraphicsBeginImageContextWithOptions(image.size, NO, image.scale);
CGRect imageRect = CGRectMake(0.0f, 0.0f, image.size.width, image.size.height);
CGContextRef ctx = UIGraphicsGetCurrentContext();
// Draw a white background (for white mask)
CGContextSetRGBFillColor(ctx, 1.0f, 1.0f, 1.0f, 0.9f);
CGContextFillRect(ctx, imageRect);
// Apply the source image's alpha
[image drawInRect:imageRect blendMode:kCGBlendModeDestinationIn alpha:1.0f];
UIImage* outImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return outImage;
}else{
return image;
}
}
Третий идентичный вопрос в течение двух дней, второй сегодня. –
Ваше изображение 'nil'? IIRC, контекст будет 'nil', если вы передадите 0 по высоте, ширине или шкале в' UIGraphicsBeginImageContextWithOptions'. – ipmcc
@ipmcc Да почему-то метод вызывается один раз с нулевым изображением. Это было легко исправить, добавив условие. Это работало на моем первом взгляде, так что это не пришло мне в голову. Спасибо – adam