实现“图片查看器”。要求可打开图片文件,能够使用某种颜色过滤图片,并保存图片文件。
要求:界面自定,参考例子MyPictureFilter
提示:需要用到图像过滤类RGBImageFilter和图片文件读写类ImageIO
说明:这是一个Java课程考查题目。这里只是简单实现了对图片(JPEG)的过滤、渲染,并进行保存。
参考例子及本题目源码已上传:http://download.youkuaiyun.com/source/3506433
关键代码:
class AnyFilter extends RGBImageFilter
{
private int rgb;
private boolean isFilter;
public AnyFilter()
{
// The filter's operation does not depend on the
// pixel's location, so IndexColorModels can be
// filtered directly.
canFilterIndexColorModel=true;
}
public AnyFilter(int rgb,boolean isFilterRender)
{
this.rgb=0xff000000 | rgb;
isFilter=isFilterRender;
canFilterIndexColorModel=true;
}
public AnyFilter(int r,int g,int b,boolean isFilterRender)
{
this.rgb=0xff000000 | (r << 16) | (g << 8) | b;
isFilter=isFilterRender;
canFilterIndexColorModel=true;
}
public int filterRGB(int x,int y,int rgb)
{
if (isFilter)
return rgb & this.rgb;
else
return rgb | this.rgb;
}
}
//toBufferedImage
public BufferedImage toBufferedImage(Image image)
{
image=new ImageIcon(image).getImage();
BufferedImage bufferedImage=new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB);
Graphics g=bufferedImage.createGraphics();
g.setColor(Color.white);
g.fillRect(0,0,image.getWidth(null),image.getHeight(null));
g.drawImage(image,0,0,null);
g.dispose();
return bufferedImage;
}
本文介绍了一个简单的Java程序,用于实现图片的色彩过滤效果。通过继承RGBImageFilter类,自定义了图片过滤逻辑,并利用ImageIO类完成图片的读取与保存。文中还提供了关键代码示例。
3万+

被折叠的 条评论
为什么被折叠?



