前言
你有喜欢收集精美图像或者衷于摄影的好爱吗?
你想用Java自己编写小程序来对你的图像进行多功能处理吗?
跟我一起来DIY你专属的PS吧
一.界面
界面的基础设置
功能菜单设置
二.监听器
加载图像
滤镜处理
界面
界面的基础设置
既然要对图像进行处理,并需要把滤镜处理后的图像展示出来,当然需要先创建一个合适的界面,界面的创建比较基础,这里便不赘述了
功能菜单设置
我们DIY的滤镜效果当然不会只有一种,这时便需要在界面上添加功能菜单,监听器会根据我们鼠标点击的不同功能菜单键而``进行不同的操作:如加载图片,怀旧滤镜,黑白滤镜等等
1 | public void draw (){ |
监听器
我们需要建立一个监听器的类,并且根据具体需要实现相应的接口。在这里我们需要实现ActionListener的功能,以判断我们所点击的功能菜单是什么,从而调用相应的方法,系统进行相应的操作
1 |
|
加载图像
首先,我们得有个图片对象,这里我们用到了文件选择器,运行时会弹出一个窗口,让我们呢在本地中选择相应的图像文件,如图所示:
1 |
|
将 JFileChooser chooser = new JFileChooser(new File(“C:\\Users\\19259\\Pictures\\JAVA漫”));中的C:\\Users\\19259\\Pictures\\JAVA漫改为你自己的本地路径,注意要将原来的\改为\\
滤镜处理
这里到了我们的重中之重,我们知道图像是由一个一个的像素构成的,而像素又是由A(透明度),R(红),G(绿),B(蓝)构成的。因此对一张图片进行处理,实质上是对每一个像素的ARGB进行处理,在这里我们暂且先只对RGB进行处理,当然,有兴趣的同学也可以加上透明度试一试。下面我便列一些不同滤镜处理的代码,大家可以参考一下。注意:R,G,B,A的范围均为0-255,且为整型,不可超出范围。
灰度化:
1 | public void huiduhua(){ |
黑白:
1 | public void heibai(){ |
怀旧滤镜:
1 |
|
反向滤镜:
1 | public void fanlv(){ |
暂且就先介绍这些滤镜的写法吧,如果想写滤镜画笔的话需要加上MouseMotionListener监听器,效果如下:
效果 - (使用画笔:怀旧滤镜,灰度化滤镜,增亮滤镜,反向滤镜)
- 本文作者: Jiahao G
- 本文链接: http://1925935955.github.io/2019/08/19/DIY你专属的PS/
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!