本文主要是介绍素描java字母_java 图像特效之素描,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
对于素描,先介绍算法,一般而言素描的算法如下:
1.图像灰度化
3.对底片进行高斯模糊
4.模糊后的结果与灰度图像进行图像混合,效果为颜色减淡(图像混合,后面我也会写一篇文章讨论下),公式为:
C =MIN( A +(A×B)/(255-B),255)
既然知道了算法,现在开始代码:
public Image filter() {
if(!this.img.gray)
this.img.toGray(); // to gray
Image copy = img.clone();
//Negative image
for (int y = 0; y < copy.h; y++) {
for (int x = 0; x < copy.w; x++) {
copy.data[x + y * copy.w] = 255 - copy.data[x + y * copy.w];
}
}
copy.filter(Mask.Guass); //Gaussian Blur
for (int y = 0; y < this.img.h; y++) {
for (int x = 0; x < this.img.w; x++) {
int a = this.img.data[x + y * this.img.w];
int b = copy.data[x + y * this.img.w];
int c = a + (a*b)/(255-b);
this.img.data[x + y * this.img.w] = clamp(c);
}
}
return this.img;
}
效果如下:
以上
这篇关于素描java字母_java 图像特效之素描的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!