java中Toolkit.getDefaultToolkit().getImage()方法该怎么用?

2023-03-17 00:48:43 5

Toolkit.getDefaultToolkit().getImage(...) 方法可以接受 String 或者 URL 参数,用于指定图像文件的路径。如果图片路径不变,则该方法返回的 Image 对象将是最开始创建的对象,除非应用程序被重启。

public static void main(String[] args) { // 图片路径:a.jpg 473*209 b.jpg 98*113 imgCache("D:dpsdemoa.jpg", "D:差誉枝dpsdemo.jpg"); }

public static void imgCache(final String srcImgFilePath, final String destImgFilePath) { Image img = null; try { img = Toolkit.getDefaultToolkit().getImage(srcImgFilePath); // 如果图片过大,可能会出现延迟。为了防止该情况发生,我们可以在图片完全被加载进来后再处理。 MediaTracker mediaTracker = new MediaTracker(new Container()); mediaTracker.addImage(img, 0); mediaTracker.waitForID(0); } catch (InterruptedException ex){ System.out.println("解析 " + srcImgFilePath + " 图片出错,出错原因:" + ex.getMessage()); }

System.out.println("width:" + img.getWidth(null) + " height:" + img.getHeight(null));

// 删除 a.jpg 图片 File aImgFilePath = new File(srcImgFilePath); if (aImgFilePath.exists()) { aImgFilePath.delete(); }

// 重命名 b.jpg 为 a.jpg File bImgFilePath = new File(destImgFilePath); bImgFilePath.renameTo(aImgFilePath);

// 读取 b.jpg 图片 try { img = Toolkit.getDefaultToolkit().getImage(srcImgFilePath); // 如果图片过大,可能会出现延迟。为了防止该情况发生,我们可以在图片完全被加载进来后再处理。 MediaTracker mediaTracker = new MediaTracker(new Container()); mediaTracker.addImage(img, 0); mediaTracker.waitForID(0); } catch (InterruptedException ex){ System.out.println("解析 " + srcImgFilePath + " 图片出错,出错原因:" + ex.getMessage()); }

System.out.println("width:" + img.getWidth(null) + " height:" + img.getHeight(null));

// 手动丢弃以前加载的信息 img = Toolkit.getDefaultToolkit().getImage(srcImgFilePath); img.flush(); }

解决办法:查询 JDK API,最后通过对返回的 Image 调用 flush 方法,可以手动丢弃以前加载的信息。

爱网站

Linux、centOS、Ubuntu、Windows操作系统下的ECS云服务器、vps虚拟空间、建站主机到期停止异常等状态监测,宝塔面板Bt、小皮面板PHPStudy、IIS、Apache、Nginx、XAMPP、wamp建站环境意外故障监测,php+MySql、asp、java、html等建站程序运行故障监测,域名状态、SSL证书状态监测,网站301、302、404、500错误代码及网站无法访问通知提醒,全国多节点测试网站速度及网络攻击!

网站服务

扫一扫,关注我们

桂ICP备2022009721号-1