java image滤镜_Java实现图片的滤镜效果

滤镜

滤镜;主要是用来实现图像的各类特殊效果。它在Photoshop中具备很是神奇的做用。滤镜一般须要同通道、图层等联合使用,才能取得最佳艺术效果。java

在移动端或者在web开发时处理图片都是一件麻烦的事儿。我调研过不少library,特别是在移动端处理图片时动不动都须要使用 C++ 或者 OpenCV。这对于 Java 程序员来讲,具备很高的门槛。甚至在调试时,遇到错误都会没法下手进行处理。其实,随着手机设备性能的不断提升,使用 Java 一样能完成这些事情。android

实现

这是原图,能够选择滤镜来美化图片。git

b1e49f78d457746752590652d653f22b.png

原图.png

这是几种滤镜的效果程序员

6d6edfc50bf5484dbfbeeebe.html

滤镜效果.jpg

首先,咱们的库叫 cv4j,cv 是 Computer Vision 的意思,同时也用于致敬 OpenCV。

https://github.com/imageprocessor/cv4jgithub

以SepiaTone滤镜为例,咱们本身私下叫它怀旧风格的滤镜web

6d6edfc50bf5484dbfbeeebe.html

SepiaTone.png

ImageData是咱们本身定义的图像数据结构。全部的滤镜都是经过ImageData来传递。算法

ImageData是一个接口,目前它的实现类只有ColorImage。

因此使用一个滤镜,一般只要这样写的就ok了。数据结构

性能是咱们一直关心的话题,我在模拟器上跑了demo app,经过 AOP 的方法打印了 demo app 中一些滤镜在使用时花费的时间。架构

6d6edfc50bf5484dbfbeeebe.html

滤镜花费的时间.jpeg

在demo app中,滤镜实例化是借助Class.forName()确定比直接使用new 某个滤镜类要慢一些。app

6d6edfc50bf5484dbfbeeebe.html

滤镜实例化使用Class.forName.jpeg

总结

cv4j 是贾志刚和我一块儿开发的图像处理库,目前还处于很早期的版本。咱们天天都会对这个库作一些提交。整个库在架构上和图像算法上都还有很大的提高空间。

本文同步分享在 博客“fengzhizi715”(JianShu)。

若有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值