我如何制作像电视那样的静态屏幕效果?
How would I make a static screen effect like a tv would have?
我想制作一个看起来像 static on a old tv
的效果
我想要它,所以它会移动,我不想使用多个预制图像来制作效果。我如何使用单色(黑色和白色)获得这种持续约 3-5 秒的效果?
尝试使用 java.awt.Canvas
class.
覆盖 canvas class 中的绘制方法,然后使用此代码生成静态:
@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。这将产生颗粒状的黑灰色纹理,并且可以适应其他网格矩阵。
编辑:
从 Canvas
更改为 JPanel
,使用 paintComponent
方法。
根据随机几率使阴影更亮或更亮。
我想制作一个看起来像 static on a old tv
的效果我想要它,所以它会移动,我不想使用多个预制图像来制作效果。我如何使用单色(黑色和白色)获得这种持续约 3-5 秒的效果?
尝试使用 java.awt.Canvas
class.
覆盖 canvas class 中的绘制方法,然后使用此代码生成静态:
@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。这将产生颗粒状的黑灰色纹理,并且可以适应其他网格矩阵。
编辑:
从
Canvas
更改为JPanel
,使用paintComponent
方法。根据随机几率使阴影更亮或更亮。