JavaFX实现Mac系统全屏截图异常问题求助
JavaFX实现Mac系统全屏截图异常问题求助
我有一个已在线部署的应用,目前仅能在Windows系统上正常运行。现在我想让它也兼容Mac OS,但遇到了一个棘手的问题:所有处于最大化状态的应用(比如Finder或者IDE本身)都无法被捕获到,截图里只有桌面背景(效果对应下面代码运行后的截图)。
我希望截图能包含所有打开的或最大化的应用,但用下面的代码实现不了这个需求。
import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.List; import javafx.application.Application; import javafx.embed.swing.SwingFXUtils; import javafx.geometry.Rectangle2D; import javafx.stage.Screen; import javafx.stage.Stage; import java.awt.Robot; public class ScreenCapture extends Application { @Override public void start(Stage primaryStage) { captureScreenshot(); } private void captureScreenshot() { List<Screen> screens = Screen.getScreens(); for (int i = 0; i < screens.size(); i++) { Screen screen = screens.get(i); Rectangle2D bounds = screen.getBounds(); Robot robot = new Robot(); WritableImage screenshot = robot.getScreenCapture(null, bounds); BufferedImage image = SwingFXUtils.fromFXImage(screenshot, null); try { ImageIO.write(image, "png", new File("screenshot" + i + ".png")); } catch (IOException ex) { System.out.println(ex.getMessage()); } } } public static void main(String[] args) { launch(args); } }
我已经在谷歌、YouTube甚至ChatGPT上搜遍了相关解决方案,但都没找到能解决这个问题的办法,恳请各位大佬帮忙指点一下!
备注:内容来源于stack exchange,提问作者Kent
相关产品推荐
相关产品推荐

