我有一个 PNG 图像,我想调整它的大小。我怎样才能做到这一点?虽然我已经经历了 这个,但我无法理解片段。
原文由 Suhail Gupta 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个 PNG 图像,我想调整它的大小。我怎样才能做到这一点?虽然我已经经历了 这个,但我无法理解片段。
原文由 Suhail Gupta 发布,翻译遵循 CC BY-SA 4.0 许可协议
我们这样做是为了创建图像的缩略图:
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
原文由 Thomas 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
如果你有一个
java.awt.Image
,调整它的大小不需要 任何 额外的库。做就是了:显然, 将
newWidth
和newHeight
替换为指定图像的尺寸。注意最后一个参数:它告诉运行时您要用于调整大小的 算法。
有一些算法可以产生非常精确的结果,但是这些算法需要很长时间才能完成。
您可以使用以下任何算法:
Image.SCALE_DEFAULT
:使用默认的图像缩放算法。Image.SCALE_FAST
:选择一种图像缩放算法,该算法对缩放速度的优先级高于缩放图像的平滑度。Image.SCALE_SMOOTH
:选择图像平滑度比缩放速度优先级更高的图像缩放算法。Image.SCALE_AREA_AVERAGING
:使用区域平均图像缩放算法。Image.SCALE_REPLICATE
:使用体现在ReplicateScaleFilter
类中的图像缩放算法。有关更多信息,请参阅 Javadoc 。