任务: 我有一些图像,我缩小它们,并将它们连接到一个图像.但是我对实现有一点问题:
具体问题: 我想调整大小/缩放BufferedImage.getScaledInstance方法返回一个Image对象,但我无法将其强制转换为BufferedImage:
Exception in thread "main" java.lang.ClassCastException: sun.awt.image.ToolkitImage cannot be cast to java.awt.image.BufferedImage
Run Code Online (Sandbox Code Playgroud)
(我不知道为什么它是ToolkitImage而不是Image ...)
我找到了解决方案:
Image tmp = bi.getScaledInstance(SMALL_SIZE, SMALL_SIZE, BufferedImage.SCALE_FAST);
BufferedImage buffered = new BufferedImage(SMALL_SIZE,SMALL_SIZE,BufferedImage.TYPE_INT_RGB);
buffered.getGraphics().drawImage(tmp, 0, 0, null);
Run Code Online (Sandbox Code Playgroud)
但它很慢,我认为应该有更好的方法来做到这一点.
我需要BufferedImage,因为我必须让像素加入小图像.
有更好的(更好/更快)的方式吗?
编辑: 如果我首先将Image转换为ToolkitImage,它有一个getBufferedImage()方法.但它总是返回null.你知道为什么吗?
我想比较一个Android设备和一个Linux虚拟机的计算性能.(我的硕士论文的一部分)测试必须使用某种输入(例如图像,或只是数字),并且必须也有一些输出.
例如,jar文件可以制作一些图像的全景图.或者也许是密码破解者.
另一个要求是,必须以编程方式启动测试.所以必须有可能,通过java方法调用启动全景制作或密码破解.
是否有开源项目或jar文件来进行此测试?
更新:链接的答案不是我搜索的:@linski有想法,没有实现.如果任务可能是"现实生活"情景会更好.例如,获取全景图,或破解密码.
UPDATE2:"测试必须使用某种输入(例如图像,或只是数字),并且必须也有一些输出." +"如果任务可能是"现实生活"情景会更好"