创建BufferedImage。插值数据

时间:2012-04-11 15:06:49

标签: java image bufferedimage

我必须从float数组列表中创建一个BufferedImage。使用一个浮点数组,我创建一个像素宽度的图像。总宽度为500像素。浮点数组列表的大小最多可以为10000浮点数组。

我构建的图像是某种历史记录,因此它以时间长度图形显示。例如,如果历史是6分钟,则图形在x轴上从3变为-3,并且图像应该以3和-3之间的中间点为中心。 标题说“插入”,但我不确定解决方案是否涉及插值。

  1. 如果列表大小超过500,如何从列表中选择float数组?
  2. 如果列表的大小小于500,我如何拆分列表?

1 个答案:

答案 0 :(得分:0)

1& 2)你必须计算500像素/大小。这是您为每个值使用的像素数。如果您有超过500个浮点值,则每个值将小于一个像素宽度。如果您的值小于500,则每个值将超过像素宽度。

假设您有700个浮点值。每个值将占用一个像素的5/7。您无法绘制部分像素,但您可以求和并舍入以确定要绘制的值。

  • 值1 - 5/7 - 舍入到1 - 在第一个像素上绘图
  • 值2 - 10/7 - 舍入到1 - 绘制第一个像素(覆盖值1)
  • 值3 - 15/7 - 舍入到2 - 在第二个像素上绘图
  • 值4 - 20/7 - 舍入到3 - 在第三个像素上绘图

依此类推,直到你绘制了所有的值。

假设您有300个浮点值。每个值将占用一个像素的5/3,或几乎2个像素。再次,您可以求和以确定要绘制的值。

  • 值1 - 5/3 - 舍入到2 - 绘制第一个和第二个像素
  • 值2 - 10/3 - 舍入到3 - 在第三个像素上绘图
  • 值3 - 15/3 - 舍入到5 - 在第四和第五个像素上绘图
  • 值4 - 20/3 - 舍入到7 - 在第六和第七个像素上绘图

依此类推,直到你绘制了所有的值。