【发布时间】:2012-12-22 12:48:12
【问题描述】:
我有一个应用程序,我想在其中绘制一个宽度随时间增长的图像。具体来说,应用程序会监听麦克风并每 6 毫秒计算一次频谱图,我想在它进来时绘制更新的频谱图。我一直在使用 java.awt.image.BufferedImage 来绘制频谱图,但仅适用于预先录制的文件,所以我有一个固定的图像宽度。对于流式应用程序执行此操作的最佳方法是什么,我事先不知道图像的宽度?
一种可能性是创建一个新的 BufferedImage 并在右侧增加一个像素并将数据复制过来,但每秒执行数百次似乎效率低下。或者我可以从一个相对较大的宽度开始并将右侧保持空白直到它填满,然后将宽度加倍,类似于 ArrayList 如何摊销其大小 - 我只需每秒复制几次数据,或每隔几秒一次,或以此类推。有更好的选择吗?
【问题讨论】: