我要创建一个具有以下功能的简单应用程序:
-
应用程序的第一页将显示来自服务器的图像列表(当我们显示这些图像时,我们应该将其像素化)。
-
一旦用户点击任何像素化图像,它将在详细视图中打开(在新的ViewController中打开该像素化图像)。
当用户在细节视图控制器图像上进行单次触摸时,它将降低其像素化级别,并且在一些点击之后,用户可以看到真实图像。
我的问题是,我无法找到一种动态像素化所有这些东西的方法。请帮帮我。
GPUImage Framework有一个pixellate过滤器,因为它使用GPU加速。在图像上应用过滤器非常快,并且您可以在运行时更改pixellate级别。
UIImage *inputImage = [UIImage imageNamed:<#yourimageame#>];
GPUImagePixellateFilter *filter = [[GPUImagePixellateFilter alloc] init];
UIImage *filteredImage = [filter imageByFilteringImage:inputImage];
对图像进行像素化的一种简单方法是使用Core image中的CIPixellate
过滤器。
使用核心图像过滤器处理图像的说明和示例代码可在核心图像编程指南中找到。
UIImage *yourImage = [UIImage imageNamed:@"yourimage"];
NSData *imageData1 = UIImageJPEGRepresentation(yourImage, 0.2);
NSData *imageData2 = UIImageJPEGRepresentation(yourImage, 0.3);
等等直到
NSData *imageDataN = UIImageJPEGRepresentation(yourImage, 1);
在以下帮助下显示图像数据:
UIImage *compressedImage = [UIImage imageWithData:imageData1];
试试这个。快乐编码