在 Java 中调整图像大小
2022-09-01 01:44:01
我有一个 PNG 图像,我想调整它的大小。我该怎么做?虽然我经历了这一点,但我无法理解这个片段。
如果您有 一个 ,调整大小不需要任何其他库。只需做:java.awt.Image
Image newImage = yourImage.getScaledInstance(newWidth, newHeight, Image.SCALE_DEFAULT);
显然,将 和 替换为指定图像的尺寸。
请注意最后一个参数:它告诉运行时要用于调整大小的算法。newWidth
newHeight
有些算法可以产生非常精确的结果,但是这些算法需要很长时间才能完成。
您可以使用以下任何算法:
Image.SCALE_DEFAULT
:使用默认的图像缩放算法。Image.SCALE_FAST
:选择一种图像缩放算法,该算法对缩放速度的优先级高于缩放图像的平滑度。Image.SCALE_SMOOTH
:选择一种图像缩放算法,该算法对图像平滑度的优先级高于缩放速度。Image.SCALE_AREA_AVERAGING
:使用面积平均图像缩放算法。Image.SCALE_REPLICATE
:使用类中体现的图像缩放算法。ReplicateScaleFilter
有关详细信息,请参阅 Javadoc。
我们这样做是为了创建图像的缩略图:
BufferedImage tThumbImage = new BufferedImage( tThumbWidth, tThumbHeight, BufferedImage.TYPE_INT_RGB );
Graphics2D tGraphics2D = tThumbImage.createGraphics(); //create a graphics object to paint to
tGraphics2D.setBackground( Color.WHITE );
tGraphics2D.setPaint( Color.WHITE );
tGraphics2D.fillRect( 0, 0, tThumbWidth, tThumbHeight );
tGraphics2D.setRenderingHint( RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR );
tGraphics2D.drawImage( tOriginalImage, 0, 0, tThumbWidth, tThumbHeight, null ); //draw the image scaled
ImageIO.write( tThumbImage, "JPG", tThumbnailTarget ); //write the image to a file