Как сделать пикселирование изображения в iOS?
Я должен создать простое приложение со следующими функциями:
На первой странице приложения будет отображен список изображений с сервера (когда мы отображаем эти изображения, мы должны пикселировать его).
Как только пользователь нажимает на любое пиксельное изображение, оно открывается в подробном представлении (открывает это пиксельное изображение в новом ViewController).
Когда пользователь делает одно прикосновение к изображению контроллера детального вида, это снижает его уровень пикселизации, и после нескольких щелчков пользователь может видеть реальное изображение.
Моя проблема в том, что я не могу найти способ динамически пикселировать все эти вещи. Пожалуйста, помогите мне.
3 ответа
GPUImage Framework имеет фильтр пикселей, так как он использует ускорение GPU, применение фильтра к изображению очень быстро, и вы можете изменять уровень пикселей во время выполнения.
UIImage *inputImage = [UIImage imageNamed:<#yourimageame#>];
GPUImagePixellateFilter *filter = [[GPUImagePixellateFilter alloc] init];
UIImage *filteredImage = [filter imageByFilteringImage:inputImage];
Простой способ пикселировать изображение - использовать CIPixellate
фильтр из основного изображения.
Инструкции и пример кода для обработки изображений с фильтрами Core Image можно найти в Руководстве по программированию Core Image.
UIImage *yourImage = [UIImage imageNamed:@"yourimage"];
NSData *imageData1 = UIImageJPEGRepresentation(yourImage, 0.2);
NSData *imageData2 = UIImageJPEGRepresentation(yourImage, 0.3);
и так далее до
NSData *imageDataN = UIImageJPEGRepresentation(yourImage, 1);
показать imageData с помощью ниже:
UIImage *compressedImage = [UIImage imageWithData:imageData1];
попробуй это. Удачного кодирования