Как сделать пикселирование изображения в iOS?

Я должен создать простое приложение со следующими функциями:

  1. На первой странице приложения будет отображен список изображений с сервера (когда мы отображаем эти изображения, мы должны пикселировать его).

  2. Как только пользователь нажимает на любое пиксельное изображение, оно открывается в подробном представлении (открывает это пиксельное изображение в новом 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];

попробуй это. Удачного кодирования

Другие вопросы по тегам