怎么用CIFilter给图片加上各种各样的滤镜_2

上一篇讲了怎么找到能用的的滤镜和大概怎么去寻找。。。

这里接着说如何详细地给图片加滤镜效果。。前的准备工作。。。

1. 在找到想用的滤镜名字之后。须要知道这个滤镜究竟须要什么參数。

例如以下图

这里打印出来的,就是当前的滤镜的所有參数。

。例如以下图

而在CIAttributeFilterName以下的參数,就是须要设置的属性。。

。这里就是inputColor、inputImage、inputIntensity这3个

当中CIAttributeClass表明这个属性须要的是什么类型的值。

设置属性的方法例如以下:

通过使用setValue forKey的方法来设置属性。。。这个key就是k+属性名+Key

在属性设置完之后,就能够输出了!。

。这里直接用CIColorMonochrome这个滤镜来做演示。。

- (UIImage *)imageFilter:(UIImage *)photo Value:(float)value
{
    CIContext *context = [CIContext contextWithOptions:nil];               // 1
    CIImage *image = [[CIImage alloc] initWithImage:photo];                // 2

    CIFilter *filter = [CIFilter filterWithName:@"CIColorMonochrome"];           // 3

    NSLog(@"%@", [filter attributes]);

    [filter setValue:image forKey:kCIInputImageKey];
    [filter setValue:[CIColor colorWithRed:100/255 green:0.4 blue:1] forKey:kCIInputColorKey];

    CIImage *result = [filter valueForKey:kCIOutputImageKey];              // 4
    CGRect extent = [result extent];
    CGImageRef cgImage = [context createCGImage:result fromRect:extent];// 5

    return [UIImage imageWithCGImage:cgImage];
}

到这为止。。

。return的UIImage就是叠加上滤镜的图片了。

时间: 2024-10-28 03:49:52

怎么用CIFilter给图片加上各种各样的滤镜_2的相关文章

ASP.NET为图片加上水印

为我们发布的图片加上一个水印,也是我们经常要做的事情,那怎么样来做呢,下面就一步步开始吧 首先是一个制作水印的类:ImageHandler,代码如下: C#代码 using System; using System.IO; using System.Drawing; using System.Drawing.Imaging; using System.Data; using System.Configuration; using System.Linq; using System.Web; us

给图片加上阴影效果

原文:给图片加上阴影效果 今天写一个小程序有一个给图片加上阴影的需求,记得WPF的Effect中就有阴影特效,就打算用它了.代码如下: using (var imageStreamSource = File.OpenRead(@"r:\4.png"))    using (Stream fs = File.Create(@"r:\test.png"))    {        var decoder = BitmapDecoder.Create(imageStrea

网页上PNG透明图片的运用(ie6+滤镜)

PNG ( Portable Network Graphics ) 格式的无损压缩和半透明特性对增强网页效果减少网页体积有着重要的作用,但由于 IE6 不支持 PNG,所以一直未能得到广泛的应用. 虽然 IE7 已经支持 PNG,但目前 IE6 还是主流,怎么样让 IE6 也使用 PNG 呢?网上有相关的介绍,下面我也尝试做一下介绍,希望在表达上能更加通俗易懂… IE5.5+ 的 AlphaImageLoader 滤镜为 PNG 提供良好的支持,虽然 IE5.0 无法支持,但毕竟是非常非常小的一

为CKEDITOR内容中图片加上 图片服务器路径

做网站的时候,前台和后台是分开的, 用了CKEDITOR上传图片,但是发现内容带图片的时候,前台Web浏览的时候是一个红X,一看路径不对,上传的到数据库中的是相对的虚拟路径,例如:<img src="/uploadFile/images/Penguins.jpg" style="height:600px; width:800px" />,需要加上图片服务器.或者是后台服务器的域名. 想了各种方法都没用一个好用的,后来想到了替换或者加上一个域名到路径前面,

Dedecms 图片加上Alt或Title等属性写法

代码如下:$this->Fields['typename'] = $this->TypeLink->TypeInfos['typename']; SetSysEnv($this->Fields['typeid'],$this->Fields['typename'],$this->Fields['aid'],$this->Fields['title'],'archives'); 在以下添加代码: Copy code//替换图片Alt为文档标题 复制代码 代码如下:$

JAVA给图片加上水印

import java.awt.Color;       import java.awt.Font;       import java.awt.Graphics;       import java.awt.Image;       import java.awt.image.BufferedImage;       import java.io.File;       import java.io.FileOutputStream;       import com.sun.image.co

给图片加上某种颜色的蒙版

.welcome-hero{ display: flex; align-items: center; justify-content: center; position:relative; background:url(../images/about/welcome-banner.jpg)no-repeat;#图片 background-size:cover; background-position: center; height:890px; } .welcome-hero:before{ p

iOS CoreImage图片处理动态渲染(滤镜)

// //  ViewController.m //  CoreImageOfDong // //  Created by Dong on 15/6/30. //  Copyright (c) 2015年 xindong. All rights reserved. // #import "ViewController.h" #import <GLKit/GLKit.h> // 须要导入此库 @interface ViewController () @property (no

Glide 图片形状裁剪 ,滤镜等

Glide . Picasso . Fresco 已逐渐成为Android主流的图片加载工具(个人见解,使用Volley.ImageLoader.xUtils的大佬们请勿喷~),在多数Android程序员的印象中,它们只是加载图片和缓存图片的工具,其实它们还有很多强大的功能没有被发掘... 今天,小编向各位介绍一下这些工具的新功能: 图像转换 下面是小编配合 Glide ,以 Glide Transformations 为例,写的一个图像转化的Demo : Glide Transformatio