使用java进行图像处理

时间:2010-09-02 17:29:12

标签: java image-manipulation

我正在尝试创建一个生成图像以用作多屏幕背景的程序,我正在针对Windows进行此操作(在我的情况下,7这样基本上我可以在不看同一图像的情况下更改图像在两个不同的屏幕上)

在我的程序中,我读取了多个图像输入文件,并将它们编译成单个输出图像,即桌面的总大小(包括屏幕上未显示的黑色区域)

我的问题是,什么类/方法适合在java中裁剪/调整大小/粘贴到新图像中,因为我遇到了很多图像处理类,而且它们似乎只做了一件小事。

除了调整大小或裁剪之外,我不会修改任何图像,并将其放入新(最初为空白)图像中的某个位置。

代码可以提供,因为我计划在稍后的某个时间点为任何可能需要/需要它的人发布代码。

提前谢谢你,如果这个问题得到了解答,我很抱歉,但我不得不四处看看。

1 个答案:

答案 0 :(得分:4)

我不知道这是否是最好的方法,但这很容易:

// load an image
Image image = javax.imageio.ImageIO.read(new File("someimage.png");
// resize it
image = image.getScaledInstance(100, 100, Image.SCALE_SMOOTH);
// create a new image to render to
BufferedImage newimg = new BufferedImage(200,100,BufferedImage.TYPE_INT_ARGB);
// get graphics to draw..
Graphics2D graphics =newimg.createGraphics();
//draw the other image on it
graphics.drawImage(image,0,0,null);
graphics.drawImage(image,100,0,null);
graphics.fillOval(20,20,40,40); //making it a bit ugly ;)
//export the new image
ImageIO.write(newimg,"png",new File("output.png"));
//done!

为简单起见,我放弃了所有检查,异常处理等。