使用Java进行图像处理

3
我正在尝试创建一个程序,用于生成多屏幕背景的图像,我正在针对Windows进行开发(在我的情况下是Windows 7),这样我就可以更改图像而不会在两个不同的屏幕上看到相同的图像。
在我的程序中,我读取多个图像输入文件并将它们编译成一个单独的输出图像,该图像的大小为整个桌面的大小(包括屏幕上看不到的黑色区域)。
我的问题是,Java中哪些类/方法适合裁剪/调整大小/粘贴到新图像中,因为我遇到了许多图像操作类,它们似乎只能做一件微小的事情。
我不会修改任何图像,只会调整大小或裁剪,并将其放置在新(最初为空白)图像中的特定位置。
代码可以提供,因为我计划在稍后的某个时间发布它,以供可能需要的人使用。
提前感谢您的帮助,如果这个问题已经有答案,请原谅我,但我确实找过了。

可能是什么是最好的Java图像处理库/方法?的重复问题。 - ripper234
1个回答

8

我不知道这是否是最佳方法,但它相当简单:

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

为了简单起见,我省略了所有的检查、异常处理等。


我认为我可以将其作为指南使用,非常感谢! - ara.hayrabedian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接