use*_*704 4 java graphics user-interface swing image
我想知道是否有一种方法可以将Image转换为BufferedImage而无需像a那样的代码
new BufferedImage(...)
Run Code Online (Sandbox Code Playgroud)
因为每个新的init都会让应用程序运行得更慢,而且,如果它在paint()方法中:(
请告知最佳转换方式.
谢谢
不,除非原件Image恰好BufferedImage已经是.然后你可以做一个演员:
BufferedImage bufImg = null;
if (origImage instanceof BufferedImage) {
bufImg = (BufferedImage) origImage;
else {
bugImg = new BufferedImage(...);
// proper initialization
}
Run Code Online (Sandbox Code Playgroud)
如果它不是a,BufferedImage它很可能是例如a VolatileImage(API中的另一个具体子类).
从易失性图像的文档:
VolatileImage是一种图像,由于应用程序无法控制的情况(例如,由操作系统或其他应用程序引起的情况),它可能随时丢失其内容.
您可能已经理解,此类图像无法提供与a相同的界面BufferedImage,因此获取a的唯一方法BufferedImage是创建一个,并在其上绘制原始图像.
因为每个新的init都会让app运行得更慢
缓存一BufferedImage,然后仅在所需大小更改时才创建新图像.否则清除Graphics当前实例的对象并执行任何需要的新绘图.
| 归档时间: |
|
| 查看次数: |
1433 次 |
| 最近记录: |