java如何为图片提供一个深褐色过滤器
我试图用一个深褐色的滤镜打印出一张图片,但它只打印两次相同的(未编辑的)图片。如何让底部的sepia代码正常工作?该代码将图片转换为灰度,然后转换为深褐色
import images.*;
public class Sepia{
public static void main(String[]args){
APImage image = new APImage("lobster.jpg");
image.draw();
APImage aCopy = image.clone();
for (Pixel p: aCopy){
int red = p.getRed();
int green = p.getGreen();
int blue = p.getBlue();
int average = (red + green + blue) / 3;
p.setRed(average);
p.setGreen(average);
p.setBlue(average);
if (red < 63){
red = (int)(red *1.1);
blue = (int)(blue * 0.9);
}else if (red < 192){
red = (int)(red*1.15);
blue = (int)(blue *0.85);
}else{
red = Math.min((int)(red*1.08),255);
blue = (int)(blue *0.93);
}
aCopy.draw();
aCopy.save();
}
}
}
# 1 楼答案
尝试在绘图之前添加此项
另外,将绘图和保存从for循环中取出