Может ли такое использование очередей отправки и CIFilters отклонить мое приложение?

#ios #animation #ios7 #core-graphics #appstore-approval

#iOS #Анимация #ios7 #ядро-графика #appstore-одобрение

Вопрос:

Я весь день искал различные способы динамического применения одного фильтра в анимации.

Я хочу применить сильный фильтр CIPixellation к изображению и постепенно анимировать исходное изображение, не используя что-то вроде альфа-затухания, которое просто не будет иметь желаемого эффекта анимации.

Я посмотрел на графический образ Брэда, но импорт МБ фреймворка в очень простое приложение немного отпугнул меня, хотя, похоже, он идеально подошел бы.

Итак, единственное, что оставалось сделать, показалось мне немного халтурным и мошенническим, поэтому я спрашиваю: может ли приведенный ниже код привести к отклонению моего приложения? И если да, то на каком основании?

Приветствия.

 - (void)pixellateImage:(UIImage *)image fromValue:(int)from toValue:(int)to

{

dispatch_queue_t bgQueue = dispatch_queue_create("bgqueue", NULL);

for (int i = from; i >= to; i--) {

    dispatch_async(bgQueue, ^{
        CIContext *context  = [CIContext contextWithOptions:nil];

        CIImage *ciImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"c3po"]];

        CIFilter *blur = [CIFilter filterWithName:@"CIPixellate"];

        [blur setValue:ciImage forKey:kCIInputImageKey];
        [blur setValue:[NSNumber numberWithInt:i] forKey:@"inputScale"];

        CGImageRef imageRef = [context createCGImage:blur.outputImage fromRect:[blur.outputImage extent]];

        UIImage *returnImage = [UIImage imageWithCGImage:imageRef];

        CGImageRelease(imageRef);

        dispatch_async(dispatch_get_main_queue(), ^{
            self.imageView.image = returnImage;
        });
    });
}
 

}

Ответ №1:

Пока вы не используете частные API, хакерский код не приведет к отклонению.

Комментарии:

1. Приветствия. Можете ли вы придумать лучший способ, чем этот? Что-то, что вряд ли приведет к потере памяти устройства, если она разрядится?

2. @aframe Я бы применил фильтр ко всем изображениям заранее, а затем установил их для анимации в UIImageView с помощью animationImages свойства.

3. Черт. Это намного проще. Приветствия