В моем приложении для iPhone я всегда использовал следующую функцию для изображения horizontally mirror
.iOS 10: функция ROI от CIKernel не разрешает разбиение
-(UIImage*)mirrorImage:(UIImage*)img
{
CIImage *coreImage = [CIImage imageWithCGImage:img.CGImage];
coreImage = [coreImage imageByApplyingTransform:CGAffineTransformMakeScale(-1, 1)];
img = [UIImage imageWithCIImage:coreImage scale:img.scale orientation:UIImageOrientationUp];
return img;
}
с прошивкой 10.0.1, хотя эта функция до сих пор работает без ошибок, но когда я пытаюсь использовать UIImage
из этой функции, появляется следующее предупреждение, а изображение просто не кажется, чтобы быть там ,
Failed to render 921600 pixels because a CIKernel's ROI function did not allow tiling.
Эта ошибка фактически появляется в окне вывода при попытке использованияUIImage
(во второй строке в этом коде):
UIImage* flippedImage = [self mirrorImage:originalImage];
UIImageView* photo = [[UIImageView alloc] initWithImage:flippedImage];
После вызова mirrorImage
, то flippedImage
переменной делает содержит значение, это не nil
, но когда я пытаюсь использовать изображение, я получаю это сообщение об ошибке.
Если бы я не называть функция mirrorImage
, то код работает отлично:
UIImageView* photo = [[UIImageView alloc] initWithImage:originalImage];
Есть ли какая-то новая причуда с iOS 10
который будет препятствовать моей mirrorImage
функции от работы?
Просто добавьте функцию mirrorImage
, я пробовал тестировать размер изображения до и после преобразования (так как ошибка жалуется на то, что имеет tile
изображение), и размер идентичен.