我如何制作像电视一样的静态屏幕效果?

时间:2015-04-04 00:30:23

标签: java effects pixels

我想制作一个看起来像static on a old tv

的效果

我想要它,所以它正在移动,我宁愿不使用多个预制图像来实现效果。如何使用持续约3-5秒的单色(黑色和白色)来获得这种效果?

1 个答案:

答案 0 :(得分:0)

尝试使用java.awt.Canvas类。

覆盖canvas类中的paint方法,然后使用此代码生成static:

@Override
public void paintComponent(Graphics g){
    super.paintComponent(g);
    for(int x = 0; x < getWidth(); x++){
        for(int y = 0; y < getHeight(); y++){
            int col = (int)(Math.round(Math.random()*100)%50);
            if(Math.random() > 0.5){
                col = 255 - col;
            }
            g.setColor(new Color(col, col, col);
            g.fillRect(x, y, 1, 1);
        }
    }
}

这实际上做的是渲染w * h网格是像素,每个像素对于r,g和b颜色值的值最大为50。这将产生颗粒状的黑灰色纹理,并且可以适应其他网格基质。

编辑:

  1. 使用Canvas方法从JPanel更改为paintComponent

  2. 根据随机机会使阴影更亮或更亮。