Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaSwing以不可见的方式拍摄屏幕截图?_Java_Image_Swing_Screenshot - Fatal编程技术网

如何使用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){  
    }  
}