【发布时间】:2016-10-06 12:59:34
【问题描述】:
所以这听起来很荒谬,但我正在做一个项目,我故意想减慢图像的加载速度,以便逐行加载。无论如何我可以做到这一点吗?我目前在 ImagePane 中有图像,它只是 JPanel 的扩展:
public ImagePane() {
initComponents();
image = null;
//this.setAutoscrolls(true);
}
public void setImage(String path) throws IOException {
image = ImageIO.read(getClass().getResource(path));
}
@Override
public void paintComponent(Graphics g)
{
//Graphics2D g2 = (Grahpics2D)g;
g.drawImage(image, 0,0, this);
}
在我试图将其显示为的窗口中:
ImagePane image = new ImagePane();
try {
image.setImage("netscapelogo2.png");
}
catch (IOException e) {
System.out.print("Failed to Set");
e.printStackTrace();
}
//jScrollPane1.add(image);
jScrollPane1.setViewportView(image);
我想我需要有人更改我的 paintComponent 方法才能做到这一点,但我不确定具体该怎么做。
【问题讨论】:
-
如果你想要 90 年代的缓慢加载图像体验,你必须获取原始像素数据并逐行绘制。请参阅
Image/BufferedImage(getRGB()/getRaster()等)的 javadocs。 -
我会通过逐渐揭开来模拟图像正在逐行加载。
标签: java arrays image loading line-by-line