最近试着做一个音乐播放器,想添加一个固定大小的图片框用来放歌曲的专辑封面。搞了很久也没弄好图片缩放的问题。上网上查了很多方法,都不对,感觉有好些是根本没有测试过的就转载了。最后找到一个很简单的方法,一句代码就可以了。
1 Image scaledImage=sourceImage. getScaledInstance(100,100, Image.SCALE_DEFAULT); //得到一个100X100的图像 2 3 Image doubledImage=sourceImage.getScaledInstance(sourceImage.getWidth(this)*2,sourceImage.getHeight(this)*2, Image.SCALE_DEFAULT); //得到一个放大两倍的图像,这个程序一般在一个swing的组件中使用,而类Jcomponent实现了图像观察者接口ImageObserver,所有可以使用this。
下面的是这个方法的API描述:
getScaledInstance
public Image getScaledInstance(int width, int height, int hints)
- 创建此图像的缩放版本。返回一个新的
Image
对象,默认情况下,该对象按指定的width
和height
呈现图像。即使已经完全加载了初始源图像,新的Image
对象也可以被异步加载。如果
width
或height
为负数,则替换该值以维持初始图像尺寸的高宽比。如果width
和height
都为负,则使用初始图像尺寸。
- 参数:
width
- 将图像缩放到的宽度。height
- 将图像缩放到的高度。hints
- 指示用于图像重新取样的算法类型的标志。- 返回:
- 图像的缩放版本。
- 抛出:
IllegalArgumentException
- 如果width
或height
为零。- 从以下版本开始:
- JDK1.1
- 另请参见:
SCALE_DEFAULT
,SCALE_FAST
,SCALE_SMOOTH
,SCALE_REPLICATE
,SCALE_AREA_AVERAGING