[翻译] CRPixellatedView-用CIPixellate滤镜动态渲染UIView

简介:

CRPixellatedView-用CIPixellate滤镜动态渲染UIView

https://github.com/chroman/CRPixellatedView

本人测试的效果:

Usage

To use CRPixellatedView, create a CRPixellatedView, configure and animate!

要使用CRPixellatedView的话,创建一个CRPixellatedView,配置以及做动画!

 

An example of making a CRPixellatedView:

以下是一个使用CRPixellatedView的例子:

CRPixellatedView *pixellatedView = [[CRPixellatedView alloc] initWithFrame:CGRectMake(0, 0, 320, 320)]; pixellatedView.image = [UIImage imageNamed:@"Image"]; [self.view addSubview:pixellatedView]; // Add to your view [pixellatedView animate]; 

 

You can configure this settings, customizable example:

以下是配置设置,自定义的例子:

CRPixellatedView *pixellatedView = [[CRPixellatedView alloc] initWithFrame:CGRectMake(0, 0, 320, 320)]; pixellatedView.image = [UIImage imageNamed:@"Image"]; pixellatedView.pixelScale = 20.0f; pixellatedView.animationDuration = 0.8f; [self.view addSubview:pixellatedView]; // Add to your view [pixellatedView animateWithCompletion:^(BOOL finished) { NSLog(@"completed"); }]; 

 

Also, you can customize the animation effect using the reverse property:

以下是你使用反转效果的例子:

CRPixellatedView *pixellatedView = [[CRPixellatedView alloc] initWithFrame:CGRectMake(0, 0, 320, 320)]; pixellatedView.image = [UIImage imageNamed:@"Image"]; pixellatedView.pixelScale = 20.0f; pixellatedView.animationDuration = 0.8f; pixellatedView.reverse = YES; // Reverse effect [self.view addSubview:pixellatedView]; // Add to your view [pixellatedView animateWithCompletion:^(BOOL finished) { NSLog(@"completed"); }]; 

 

Examples

pixellatedView.reverse = YES; // Reverse effect 

pixellatedView.reverse = NO; // (default) pixellatedView.pixelScale = 30.0f;

 

核心的地方:

使用了3个CoreImage的滤镜用来重绘View:)

目录
相关文章
|
30天前
|
前端开发 JavaScript 开发者
【QML进阶 进度条设计】打造动态弧形进度条特效
【QML进阶 进度条设计】打造动态弧形进度条特效
84 1
|
前端开发
Threejs - 加载视频纹理渲染 实现一个3D视频播放器
Threejs - 加载视频纹理渲染 实现一个3D视频播放器
1814 0
Threejs - 加载视频纹理渲染 实现一个3D视频播放器
|
22天前
|
Android开发 开发者
Android开发之通过渲染纹理展示地球仪
该文阐述了如何使用OpenGL为三维物体添加纹理,以增强其真实感。纹理坐标是二维的,用于标记摊平后的“布料”对应物体的哪个部位,类似裁缝制作衣服的过程。在OpenGL中,启用纹理和深度测试是关键,还包括设置纹理参数、分配纹理编号、绑定位图材质等步骤。计算材质的纹理坐标后,通过`glDrawArrays`结合顶点和纹理坐标逐个贴图。最终示例展示了将世界地图贴到球体上形成逼真的地球仪效果。通过控制旋转、平移和缩放,能实现简单的三维动画效果。
13 2
Android开发之通过渲染纹理展示地球仪
|
10月前
【Redshift渲染器渲染出图片有色差(红移渲染器)】
【Redshift渲染器渲染出图片有色差(红移渲染器)】
140 0
【Redshift渲染器渲染出图片有色差(红移渲染器)】
Sprite渲染流程-纹理绑定
Sprite渲染流程-纹理绑定
61 0
|
存储 缓存 算法
OpenGL图像渲染以及渲染问题解决方案
在绘制3D场景的时候,我们需要决定哪些部分是对观察者可见的,或者哪些部分是对观察者不可见的,对于不可见的部分,应该及早丢弃。例如在一个不透明的墙壁后,就不应该有渲染,这种情况叫做隐藏面消除(Hidden surface elimination).
544 0
OpenGL图像渲染以及渲染问题解决方案
|
算法 图形学
【Unity3D Shader】学习笔记-图片滤镜①
效果和上面的比较相似,Photoshop CS图像黑白调整功能的计算公式为: gray= (max - mid) * ratio_max + (mid - min) * ratio_max_mid + min 公式中:gray为像素灰度值,max、mid和min分别为图像像素R、G、B分量颜色的最大值、中间值和最小值,ratio_max为max所代表的分量颜色(单色)比率,ratio_max_mid则为max与mid两种分量颜色所形成的复色比率。 默认的单色及复色比率为:
811 0
【Unity3D Shader】学习笔记-图片滤镜①
|
缓存 Android开发
Skia深入分析5——skia文字绘制的实现
文字绘制主要包括编码转换(主要是中文)、字形解析(点线或image)和实际渲染三个步骤。在这个过程中,字形解析和实际渲染均是耗时步骤。Skia对文字解析的结果做了一套缓存机制。在中文字较多,使用多种字体,绘制的样式(粗/斜体)有变化时,这个缓存会变得很大,因此Skia文字缓存做了内存上的限制。 1、SkPaint 文字绘制与SkPaint的属性相关很大,先回头看下SkPaint相关
6348 0
第二十七章:自定义渲染器(六)
有趣的是,Android SeekBar小部件具有与Steps属性等效的功能,但不等同于Minimum和Maximum属性! 这怎么可能? SeekBar实际上定义了一个名为Max的整数属性,SeekBar的Progress属性始终是一个从0到Max的整数。
735 0
|
Windows
第二十七章:自定义渲染器(五)
渲染器和事件(1) 大多数Xamarin.Forms元素都是交互式的。他们通过触发事件来响应用户输入。如果在Xamarin.Forms自定义元素中实现事件,则可能还需要在呈现器中为本机控件触发的相应事件定义事件处理程序。
690 0