我正在寻找一个很好的替代javax.imageio包,让我做简单的旋转,切割和缩放的图像操作。例如,我想做
int angle, height, width;
image.rotateRight(angle).scale(height, width);为了获得向右旋转角度度并缩小到高度x宽度像素的图像。
使用Graphics2D和BufferedImages,我将不得不这样做,这既不是可读的,也不容易编写:
BufferedImage result = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = result.createGraphics();
graphics.translate(height/2, width/2);
graphics.rotate(angle);
graphics.translate(-width/2, -height/2);
graphics.drawImage(image, 0, 0, width, height, null);(实际上,这段代码甚至没有考虑到非方形图像,这将要求我在翻译时做更多的魔术)。
发布于 2009-04-21 15:46:51
有一个Java高级成像API,它包含一些有用的东西,比如RotatorDescriptor。
但是我承认我觉得你上面的例子很容易读,所以我不确定你会得到更多你喜欢的东西:-)
发布于 2009-04-21 16:35:42
我同意布莱恩的观点:杰伊对你来说是个很好的选择。您可能需要编写一些委托对象来获得所需的可读代码,并使用它而不是JAI。
您还可以使用处理(http://processing.org)。它的API比JAI更简单。由于使用了处理,默认情况下您将获得更好的缩放和旋转操作质量。
https://stackoverflow.com/questions/773236
复制相似问题