0
我有一個小型java程序,目的是用相同的程序拍攝特定組件的屏幕截圖。容器的屏幕截圖有黑色背景而不是白色
這裏是它
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
@SuppressWarnings("serial")
public class Screen {
public static void main(String[] args) {
Frame frame = new Frame("Screen Test!");
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
frame.dispose();
}
});
Container container = new Container() {
@Override
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.RED);
g.fillRect(5, 5, 10, 10);
}
};
Dimension dimension = new Dimension(50, 50);
container.setPreferredSize(dimension);
frame.add(container);
frame.pack();
frame.setVisible(true);
BufferedImage bufImage = new BufferedImage(dimension.width, dimension.height, BufferedImage.TYPE_INT_RGB);
container.paint(bufImage.createGraphics());
File outputfile = new File("image.jpg");
try {
ImageIO.write(bufImage, "jpg", outputfile);
} catch (IOException e) {
e.printStackTrace();
}
}
}
一個MCVE當代碼運行它產生這個文件。
不過,我預計它看起來像這樣的輸出文件。
難道我做錯了或錯過了一步?
我試圖在容器和框架上設置白色的背景,並沒有區別。此外,我確實導入了'java.awt.Color' – Dan
@Dan看到我的編輯,您需要將背景添加到您用來繪製圖像的圖形,而不是框架。希望這可以幫助。 –
謝謝你的幫助 – Dan