2010-09-02 68 views
1

我试图创建一个程序,生成图像作为多屏幕背景使用,我这样做的目标是在Windows(在我的情况下,7,以便基本上我可以让图像更改没有看到两个不同的屏幕相同的图像)使用java的图像处理

在我的计划,我读多个图像输入文件并将它们编译成是桌面(包括黑色区域的总规模没有看到屏幕)

单个输出图像

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

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

可以提供代码,因为我打算在稍后的时间点发布代码,以供愿意/需要的人使用。

非常感谢您,如果这个问题已经得到解答,我的道歉,但我有一个环顾四周。

+0

的[可能重复的是什么最好的java图像处理库/方法?](http://stackoverflow.com/questions/603283/what-is-the-best-java-image-processing-library-approach) – ripper234 2011-11-28 15:45:16

回答

3

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

// 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! 

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

+0

我想我可以用这个作为一个指导,非常感谢! – 2010-09-02 19:51:46