如何使用JavaSwing以不可见的方式拍摄屏幕截图?
可能重复:如何使用JavaSwing以不可见的方式拍摄屏幕截图?,java,image,swing,screenshot,Java,Image,Swing,Screenshot,可能重复: 我想拍摄jpanel的屏幕截图,看不见我该怎么做 我不知道,请告诉我。我不确定“隐形”是什么意思。请检查它是否有任何帮助 为了将java.awt.Components中的快照保存到JPEG或任何其他格式文件中,只需执行以下操作: 创建与组件尺寸相同的BuffereImage 将组件的内容绘制到BuffereImage中 使用JPEG包和标准FileOutputStream将BuffereImage保存到文件中 请参见.1)}catch(Exception ex){},这是不可
我想拍摄jpanel的屏幕截图,看不见我该怎么做
我不知道,请告诉我。我不确定“隐形”是什么意思。请检查它是否有任何帮助 为了将java.awt.Components中的快照保存到JPEG或任何其他格式文件中,只需执行以下操作:
- 创建与组件尺寸相同的BuffereImage
- 将组件的内容绘制到BuffereImage中
- 使用JPEG包和标准FileOutputStream将BuffereImage保存到文件中李>
请参见.1)
}catch(Exception ex){}
,这是不可取的,即使在代码段中也是如此。不要忽略例外情况。2) 组件的图像通常保存为PNG比保存为JPEG更好(更多提示请参见此)。谢谢Andrew。我对这个地方很陌生,对Java也很陌生。我刚刚开始我的职业生涯,希望能从这里的人那里学到很多东西。@Gaurav欢迎来到这个论坛,确保向下投票是学习某些东西的最佳方式:-)另外,请注意,如果您编辑代码示例以使其更好,我不仅可以删除我的向下投票和注释,还可以甚至向上投票答案。:)@Gaurav:如果你自己创建一个图形对象,就像你在上面做的那样,你也要负责处理它,否则你就有资源耗尽的风险。我还敦促您更正上面的代码,以免忽略异常。
void getSnapShot(JPanel panel ){
BufferedImage bufImg = new BufferedImage(panel.getSize().width, panel.getSize().height,BufferedImage.TYPE_INT_RGB);
panel.paint(bufImg.createGraphics());
File imageFile = new File("."+File.separator+snapshotLocation);
try{
imageFile.createNewFile();
ImageIO.write(bufImg, "jpeg", imageFile);
}catch(Exception ex){
}
}