我在java中使用“迷你photoshop”。我打开jpg文件使用这个方法
public BufferedImage open()
{
fc = new JFileChooser();
int ret = fc.showOpenDialog(null);
if (ret == JFileChooser.APPROVE_OPTION)
{
try {
img=ImageIO.read(fc.getSelectedFile());
img2=ImageIO.read(fc.getSelectedFile());
raster = img.getRaster();
} catch (IOException e) {
e.printStackTrace();
}
}else
img = null;
return img;
}
在这张图片中,我做了一些改变,例如。塞菲亚,索贝尔。但在此之后我想回到原始图片,我用这个方法来做到这一点:
public BufferedImage origin() {
raster=img.getRaster();
return img2;
}
当我想再次使用棕褐色或任何其他过滤器时出现问题,因为程序记得早先的修改。
例如,当我使用棕褐色然后回到原点并使用sobel时,程序显示我的sepia + sobel,应该只显示sobel。
答案 0 :(得分:0)
应该在下面的行
raster=img.getRaster();
更改为
raster=img2.getRaster(); ?
public BufferedImage origin() {
raster=img.getRaster();
return img2;
}