我有這樣一段代碼給我的圖像的色彩,我需要:CGContextFillRects:無效的情況下 - 目標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:invalid context 0x0。這是一個嚴重的錯誤。此應用程序或其使用的庫正在使用無效的上下文,從而導致系統穩定性和可靠性的整體降級。這個通知是禮貌的:請解決這個問題。這將成爲即將到來的更新中的致命錯誤。
CGContextFillRects:無效的上下文0x0。這是一個嚴重的錯誤。這個 應用程序或其使用的庫正在使用無效的上下文,因此有助於整體降低系統穩定性和可靠性。這個通知是禮貌的:請解決這個問題。它 將成爲即將到來的更新中的致命錯誤。
任何想法如何擺脫這個錯誤?
謝謝。
編輯:
該行動被調用與零圖像。我很容易通過添加條件來修復它。感謝@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;
}
}
第三個相同的問題在兩天內,第二個今天。 – 2013-08-07 16:17:30
是你的圖像'無'? IIRC,如果您將高度,寬度或比例的0傳遞給'UIGraphicsBeginImageContextWithOptions',上下文將爲'nil'。 – ipmcc
@ipmcc是的,由於某種原因該方法被調用一次無圖像。通過添加條件可以很容易地解決這個問題。它在我的第一個觀點上工作,所以這並沒有出現在我的腦海裏。謝謝 – adam