【问题标题】:Convert from GDI32.HDC to awt.Graphics从 GDI32.HDC 转换为 awt.Graphics
【发布时间】:2013-06-13 20:21:22
【问题描述】:

我已经阅读了一些文档和示例,但我就是不明白。从HDC 转换为awt.Graphics 是不可能的吗?

我知道已经有解决这个问题的答案,但它们都非常具体。我想最终绘制到屏幕上并操作保存的图像。我认为最好的方法是在BufferedImageHDC 之间进行转换,因为使用awt 绘图非常简单。

我刚刚了解了JNA,所以这可能是一个非常愚蠢的问题。我从未使用过 C 或 C++ 可能无济于事。无论如何,我被困在这里:

public static void main(String[] args)
{
    GDI32 GDI = GDI32.INSTANCE;
    User32 user32 = (User32) Native.loadLibrary("user32", User32.class);
    HWND win = user32.GetForegroundWindow();
    HDC winDC = user32.GetDC(win);
    HBITMAP bi = GDI.CreateCompatibleBitmap(winDC, 1024, 1024); 
}

【问题讨论】:

    标签: java gdi jna


    【解决方案1】:

    兼容位图的最佳选择是整数值数组,尽管您可能必须直接从一种格式读取像素值并写入目标。 JNA 将像素从 Java Graphics 生成的图像传输到 WindowUtils.java 中的 windows HDC。

    至于将windows绘制的东西转换成BufferedImage,你需要将windows图像提取为像素,然后将它们写入BufferedImage

    【讨论】:

      猜你喜欢
      • 2019-02-26
      • 2011-11-27
      • 2010-11-13
      • 2020-01-16
      • 1970-01-01
      • 2015-09-08
      • 1970-01-01
      • 2013-06-11
      • 1970-01-01
      相关资源
      最近更新 更多