0
我使用CGImageMaskCreate創建一個蒙版圖像,它在第一次被調用時工作正常。但是,如果從drawRect第二次調用相同的函數,則創建的蒙版圖像爲空。繪製矩形已經跑三圈掩蓋UIImage兩次導致一個空的圖像
- (void)drawRect:(CGRect)rect{
UIImage *maskImage = [UIImage imageNamed:@"circle.png"]; //This will be replaced
UIImage *maskedImage = [self maskImage:_selectedImage withMask:maskImage];
_selectedImage = maskedImage;
[_selectedImage drawInRect:rect];
}
- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {
CGImageRef maskRef = maskImage.CGImage;
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
UIImage *result = [UIImage imageWithCGImage:masked];
NSLog(@" MASK >> RETURNING %@ %f %f",
result.description, result.size.width, result.size.height);
return result;
}
後日志的輸出
MASK >> RETURNING UIImage: 0x903d720 320.000000 480.000000
MASK >> RETURNING UIImage: 0x73660c0 0.000000 0.000000
MASK >> RETURNING UIImage: 0x90f7390 0.000000 0.000000
所以它看起來像蒙面圖像被稱爲第二時間後空。
幫助會很好,這是我的第一個IOS應用程序,所以也許這是明顯的。
你知道嗎?我看到了同樣的行爲。 – Liron