Я пытаюсь замаскировать изображение с помощью «изображения маски». В первый раз он работал нормально. Но когда я пробую еще один раз в приложении с тем же изображением маски, приложение аварийно завершает работу. При попытке с другим изображением маски он отлично работает. Почему это происходит?Сбой при маскировании изображения
Консоль показывает <Error>: CGImageMaskCreate: invalid mask bits/component: 4294967295.
- (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 *img2=[UIImage imageWithCGImage:masked];
CGImageRelease(maskRef);
CGImageRelease(mask);
CGImageRelease(masked);
return img2;
}
fun1()
{
view.image=[self maskImage:image1 withMask:[UIImage imageNamed:@"image2.png"]];
}
fun2()
{
view.image=[self maskImage:image1 withMask:[UIImage imageNamed:@"image2.png"]]; view.image=[self maskImage:image1 withMask:[UIImage imageNamed:@"image3.png"]];
}
fun3()
{
view.image=[self maskImage:image1 withMask:[UIImage imageNamed:@"image2.png"]];
view.image=[self maskImage:image1 withMask:[UIImage imageNamed:@"image2.png"]];
}
При вызове fun1
и fun2
, apllication работает отлично. Приложение сбой при вызове fun3
.
Это звучит как-то высвобождается из-под вас, но без более подробно или образец кода, который я не знаю, как мы сможем ответить на ваш вопрос. –
У вас есть ошибка GDB? Запустите программу в режиме отладки, и я должен указать ошибку –