相关疑难解决方法(0)

37
推荐指数
2
解决办法
8万
查看次数

将JPanel转换为图像

有没有办法将JPanel(尚未显示)转换为BufferedImage?

谢谢,

杰夫

java swing image jpanel

15
推荐指数
1
解决办法
3万
查看次数

java和全屏多个监视器

我的Java应用程序的片段:

 JFrame f = new JFrame();
 GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
 GraphicsDevice gd = ge.getDefaultScreenDevice();
 gd.setFullScreenWindow(f);
Run Code Online (Sandbox Code Playgroud)

所以它的作用是让它自动全屏.现在奇怪的是程序是全屏的,但只能在一台显示器上!例如,我有一个带有两个屏幕的Windows Vista系统,它们组合在一个桌面上.怎么做才能让它全屏显示所有显示器?


好的我试过了:

import java.awt.image.ColorModel;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;

class grdevs
{
    public static void main(String [] args)
    {
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice[] gs = ge.getScreenDevices();
        for(GraphicsDevice curGs : gs)
        {
            GraphicsConfiguration[] gc = curGs.getConfigurations();
            for(GraphicsConfiguration curGc : gc)
            {
                Rectangle bounds = curGc.getBounds();
                ColorModel cm = curGc.getColorModel();

                System.out.println("" + bounds.getX() + "," + bounds.getY() + " " + bounds.getWidth() …
Run Code Online (Sandbox Code Playgroud)

java swing fullscreen

12
推荐指数
2
解决办法
2万
查看次数

如何在Windows(ffmpeg等)中使用Java快速截取桌面?

我想使用java来使用FFMPEG或其他解决方案截取我的机器的屏幕截图.我知道linux可以在没有JNI的情况下使用ffmpeg,但在Windows中运行它不起作用并且可能需要(JNI?)是否有一些简单的Java类(以及其他任何必要的)的示例来捕获在Windows环境中可运行的屏幕截图?FFMPEG有替代品吗?我想以比Java Robot API更快的速度截取屏幕截图,我发现它可以用来截取屏幕截图,但速度比我想要的慢.

我知道在Linux中它的工作速度非常快:

import com.googlecode.javacv.*;

public class ScreenGrabber {
    public static void main(String[] args) throws Exception {
        int x = 0, y = 0, w = 1024, h = 768;
        FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(":0.0+" + x + "," + y);
        grabber.setFormat("x11grab");
        grabber.setImageWidth(w);
        grabber.setImageHeight(h);
        grabber.start();

        CanvasFrame frame = new CanvasFrame("Screen Capture");
        while (frame.isVisible()) {
            frame.showImage(grabber.grab());
        }
        frame.dispose();
        grabber.stop();
    }
Run Code Online (Sandbox Code Playgroud)

这在Windows环境中不起作用.我不确定是否有某些方法可以使用相同的代码,但使用javacpp实际上可以使其工作,而无需更改上述代码.

目标是快速截取屏幕截图,但在截取"不同"的屏幕截图之后停止.屏幕因某些事件而改变,例如窗口关闭等等.

java windows java-native-interface ffmpeg

11
推荐指数
1
解决办法
1万
查看次数

如何在Java中快速截取屏幕截图?

我正在实现一个简单的眼动仪,它需要快速截屏屏幕上发生的事情,同时从网络摄像头捕获视频.

问题在于使用Robot进行操作的方法,这里提到:https://stackoverflow.com/questions/2475303/java-library-for-capturing-active-window-screenshot 非常慢.

顺便说一句,从网络摄像头检索视频的速度要快得多,并返回字节数组,这样处理速度非常快.

有人知道更快的解决方案吗?可以链接到Java的C++库也可以提供帮助.

谢谢!

更新:决定切换到OpenCV,现在正在寻找用它制作截图的方法:)

java screenshot

9
推荐指数
3
解决办法
1万
查看次数

从ASP.Net页面获取屏幕截图

我有一个ASP.Net页面,其中有一个按钮,点击后我想截取用户PC的屏幕截图并将其发送到服务器.

我可以编写某种侦听器程序在服务器上运行以接受接收这些图像的请求.我有点模糊的地方是让用户的PC发送屏幕截图的最佳方式.这需要通过为ASP.Net页面编写某种Active X控件来完成吗?如果可能,它需要跨浏览器和操作系统.

只是在正确方向上的一点,我应该使用哪些技术将是伟大的.如果可能的话,我宁愿自己编写这个功能,而不是使用开箱即用的解决方案,因为我可以看到将来可以扩展此功能.像WebEx或副驾驶这样的东西如何管理?

谢谢

加文

编辑:只是为了说清楚我不是想从用户PC窃取信息,他们必须允许这个功能,更多的是从支持的角度来看,所以当客户遇到问题时他们可以发送页面的截图他们在.

com screenshot activex web

5
推荐指数
1
解决办法
3554
查看次数