在java中调整图像大小

Suh*_*pta 25 java user-interface swing image

我有一个png图像,我想调整它.我怎么能这样做?虽然我已经完成了这个我无法理解的片段.

Alb*_*dez 62

如果你有java.awt.Image,重新确定它不需要任何额外的库.做就是了:

Image newImage = yourImage.getScaledInstance(newWidth, newHeight, Image.SCALE_DEFAULT);
Run Code Online (Sandbox Code Playgroud)

很糟糕的是,替换 newWidthnewHeight指定图像的尺寸.
注意最后一个参数:它告诉运行时您要用于调整大小的算法.

有些算法会产生非常精确的结果,但这些算法需要很长时间才能完成.
您可以使用以下任何算法:

有关详细信息,请参阅Javadoc.

  • doc链接指旧版本使用此代码:http://download.oracle.com/javase/6/docs/api/java/awt/Image.html (2认同)

Tho*_*mas 16

我们这样做是为了创建图像的缩略图:

  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
Run Code Online (Sandbox Code Playgroud)


Har*_*Joy 8

试试这个:

ImageIcon icon = new ImageIcon(UrlToPngFile);
Image scaleImage = icon.getImage().getScaledInstance(28, 28,Image.SCALE_DEFAULT);
Run Code Online (Sandbox Code Playgroud)

  • @jfpoilpret:欲了解更多信息.参见[The Image of Image.getScaledInstance()](http://today.java.net/pub/a/today/2007/04/03/perils-of-image-getscaledinstance.html). (5认同)
  • IIRC,这种方式(getSclaedInstance())由于不建议它缺乏的表现(我觉得我读的是,在很久以前,在"巨富客户端"). (2认同)