Harbeth 图形处理和滤镜制作开源项目

我要开发同款
匿名用户2022年03月19日
73阅读
开发技术Swift
所属分类图像(Image)、iOS代码库
授权协议MIT

作品详情

Harbeth是Apple的Metal框架上的一小部分实用程序和扩展,专用于使您的SwiftGPU代码更加简洁,让您更快地构建管道原型。

Harbeth专注于图形处理和滤镜制作,目前最重要的特点可以总结如下:

支持运算符函数式操作支持快速设计滤镜支持合并多种滤镜效果支持输出源的快速扩展支持相机采集特效支持视频添加滤镜特效支持矩阵卷积滤镜部分大致分为以下几个模块: Blend:图像融合技术 Blur:模糊效果 ColorProcess:图像的基本像素颜色处理 Effect:效果处理 Lookup:查找表过滤器 Matrix:矩阵卷积滤波器 Shape:图像形状大小相关 VisualEffect:视觉动态特效总结下来目前共有 100+ 种滤镜供您使用。

代码零侵入注入滤镜功能,原始代码:ImageView.image=originImage注入滤镜代码:letfilter=C7ColorMatrix4x4(matrix:Matrix4x4.sepia)varfilter2=C7Granularity()filter2.grain=0.8varfilter3=C7SoulOut()filter3.soul=0.7letfilters=[filter,filter2,filter3]简单使用ImageView.image=try?originImage.makeGroup(filters:filters)或者运算符操作letAT=C7FilterTexture.init(texture:originImage.mt.toTexture()!)letresult=AT->>filter->>filter2->>filter3ImageView.image=result.outputImage()甚至函数式编程高级用法vartexture=originImage.mt.toTexture()!filters.forEach{texture=texture->>$0}ImageView.image=texture.toImage()相机采集生成图片注入边缘检测滤镜:varfilter=C7EdgeGlow()filter.lineColor=UIColor.red注入颗粒感滤镜:varfilter2=C7Granularity()filter2.grain=0.8生成相机采集器:letcamera=C7CollectorCamera(callback:{[weakself](image)inself?.ImageView.image=image})camera.captureSession.sessionPreset=AVCaptureSession.Preset.hd1280x720camera.filters=[filter,filter2]主要部分

核心,基础核心板块

C7FilterProtocol:滤镜设计必须遵循此协议modifier:编码器类型和对应的函数名称factors:设置修改参数因子,需要转换为FloatotherInputTextures:多个输入源,包含MTLTexture的数组outputSize:更改输出图像的大小

输出,输出板块

C7FilterOutput:输出内容协议,所有输出都必须实现该协议make:根据滤镜处理生成数据makeGroup:多个滤镜组合,请注意滤镜添加的顺序可能会影响图像生成的结果C7FilterImage:基于C7FilterOutput的图像输入源,以下模式仅支持基于并行计算的编码器C7FilterTexture:基于C7FilterOutput的纹理输入源,输入纹理转换成滤镜处理纹理C7CollectorCamera:相机数据采集器,直接生成图像,然后在主线程返回C7CollectorVideo:视频图像桢加入滤镜效果,直接生成图像设计滤镜举个例子,如何设计一款灵魂出窍滤镜
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论