セピアフィルタで画像を印刷しようとしていますが、同じ(編集されていない)画像を2回印刷します。一番下のセピアコードを動作させるにはどうすればよいですか?コードは画像をグレースケールに変換し、セピアに変換します。画像にセピアフィルタを付けるには
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();
}
}
}
のうち、保存あなたは一種のjavascriptのは、Javaか何かの兄であることを考えていますか? ;-) –
'APImage'とは何ですか?これはJava標準ライブラリの一部ではありません。 Pixelとは何ですか? –
@ErwinBolwidt私もgoogled、それはhttp://home.wlu.edu/~lambertk/hsjava/edition4/whatsnew/imagedocs/images/apimage.html(いくつかのawkrwardコード、IMHO ...) – Marco13