如何提高g.drawImage()方法的性能以调整图像大小

我有一个应用程序,用户可以上传相册中的图片,但是自然需要调整上传图片的大小,因此也有可用的拇指并且显示的图片也适合页面(例如800x600)。我调整大小的方式是这样的:

Image scaledImage = img.getScaledInstance((int)width, (int)height, Image.SCALE_SMOOTH);

BufferedImage imageBuff = new BufferedImage((int)width, (int)height, BufferedImage.TYPE_INT_RGB);

Graphics g = imageBuff.createGraphics();

g.drawImage(scaledImage, 0, 0, new Color(0,0,0), null);

g.dispose();

而且效果还不错。我唯一的问题是该g.drawImage()方法似乎非常慢,并且我无法想象用户足够耐心地等待20 *

10秒〜3分钟的时间上传20张图片。实际上,在我的计算机上,为单张图片进行3种不同的尺寸调整大约需要40秒。

这还不够好,我正在寻找更快的解决方案。我想知道是否有人可以通过调用Shell脚本,命令告诉我有关Java或Java更好的一个信息,无论您知道什么黑客,它都必须更快,其他所有内容这次都无关紧要。

回答:

您可以使用的ImageMagick来创建缩略图。

convert -define jpeg:size=500x180  hatching_orig.jpg  -auto-orient \

-thumbnail 250x90 -unsharp 0x.5 thumbnail.gif

要从Java使用它,您可以尝试JMagick,它为ImageMagick提供了Java(JNI)接口。或者,您可以直接使用Runtime.exec或直接调用ImageMagick命令ProcessBuilder

以上是 如何提高g.drawImage()方法的性能以调整图像大小 的全部内容, 来源链接: utcz.com/qa/430244.html

回到顶部