绘制直方图

muh*_*nad 1 java jpeg image histogram

我想画一个JPEG系数直方图

//coeff[] is the coefficients array
int hist[]=new int[25];
for(int i=0;i<coeff.length;i++)
hist[coeff[i]]++;
Run Code Online (Sandbox Code Playgroud)

现在我想绘制条形图直方图的hist数组,但我不知道有什么功能吗?提前致谢

riv*_*333 5

当你有一个JFrame或类似的东西时,你可以覆盖paint(Graphics g)方法.然后你可以像这样绘制条形:

@Override
public void paint(Graphics g)
{
  super.paint(g);
  final int barwidth = 20;
  for(int i=0;i<25;i++){
    g.fillRect(i*barwidth , 0, barwidth , hist[i]*10);
  }
}
Run Code Online (Sandbox Code Playgroud)

以下是JLabel的示例:

class Histogram extends JLabel{

//... make hist visible for this class

  @override
  protected void paintComponent(Graphics g){
    super.paintComponent(g);
    final int BAR_WIDTH = 20;
    final int X_POSITION = 0;
    final int Y_POSITION = 200;
    for(int i=0;i<25;i++){
      g.fillRect(X_POSITION +i*BARWIDTH , Y_POSITION , BAR_WIDTH , -hist[i]*10);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样将它添加到你的大型机:

Histogram histogram = new Histogram();
add(histogram);
Run Code Online (Sandbox Code Playgroud)

当这回答你的问题时,请标记线程,谢谢.