如何提高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