编写图片复制JAVA代码_何编写[java]代码为图片赋予“铅笔素描”效果

我正在创建一个应用程序,在该应用程序中,我想对图像进行转换以使其具有铅笔素描效果,可以通过photoshop轻松获得,如此处所述。

但是,我需要使代码中的整个过程自动化,并且肯定不应该在photoshop中“看”里面看看它是如何工作的(算法/转换等及其实现是什么)。

无论如何,从上面的文章中可以清楚地看到伪代码如下所示:

s =读取文件图像(“ / path / to / image”)

g =转换为灰度比例

i =反转-颜色(g)

b = Apply-Gaussian-Blur(i)

结果= Color-Dodge-Blend-Merge(b,g)

现在,只需找到提供我所需操作的开源图像处理库即可。通过谷歌搜索,我进入了JH Labs。他们免费提供了一个图像编辑器,我试图在该图像编辑器上复制上面提到的photoshop文章中所述的过程,实际上我得到了铅笔素描效果。现在,最好的部分是JH Labs图像编辑器背后的图像处理库是开源的。

然后,只需使用JH Labs库对伪代码进行编码即可,在这里...

BufferedImage src = null;

BufferedImage target = null;

src = ImageIO.read(新文件(“ C:\\ tmp \\ ss.png”));

src = ImageUtils.convertImageToARGB(src);

//转换开始=============

//灰度

PointFilter grayScaleFilter = new GrayscaleFilter();

BufferedImage grayScale = new BufferedImage(src.getWidth(),src.getHeight(),src.getType());

grayScaleFilter.filter(src,grayScale);

//反转灰度

BufferedImage reverse = new BufferedImage(src.getWidth(),src.getHeight(),src.getType());

PointFilter invertFilter = new InvertFilter();

invertFilter.filter(grayScale,inverted);

//高斯模糊器

GaussianFilter gaussianFilter = new GaussianFilter(20);

BufferedImage gaussianFiltered = new BufferedImage(src.getWidth(),src.getHeight(),src.getType());

gaussianFilter.filter(inverted,gaussianFiltered);

// color dodge

ColorDodgeComposite cdc = new ColorDodgeComposite(1.0f);

CompositeContext cc = cdc.createContext(inverted.getColorModel(),grayScale.getColorModel(),null);

栅格反转R = gaussianFiltered.getRaster();

栅格grayScaleR = grayScale.getRaster();

BufferedImage复合=新的BufferedImage(src.getWidth(),src.getHeight(),src.getType());

WritableRaster colorDodgedR = Composite.getRaster();

cc.compose(invertedR,grayScaleR,colorDodgedR);

// =================================

目标=复合;

文件outputfile =新File(“ C:\\ tmp \\ saved.png”);

ImageIO.write(target,“ png”,输出文件);

这是我应用上述代码时图像转换的方式... 注意:-我在png图像上使用了以上代码。JH Labs代码仅适用于TYPE_INT_ARGB(ref)图像,因此您可能需要正确转换它们。-上面显示的代码仅用于检查概念,并不考虑其性能和美观。致谢:好吧,老实说,从成为外星人到图像处理再到代码,并不是本文所描述的那样线性的过程,为此,我不得不做很多尝试。我要感谢杰瑞,他耐心地回答了我的问题。

6c80db79e592f6de795e0335b71df4db.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值