【问题标题】:Grab screen pixel data "behind" the Windows 10 magnifier tool在 Windows 10 放大镜工具“背后”抓取屏幕像素数据
【发布时间】:2021-02-19 22:14:33
【问题描述】:

我想知道当 windows 放大镜工具在全屏模式下运行时是否可以捕获整个屏幕视图。本质上,我正在寻找的是当我用眼睛看屏幕上的某个点时,只有屏幕上的某个点显示在我的显示器上,我希望能够打印整个屏幕没有关闭放大镜的原始屏幕。不知道如何比这更好,更清楚地表达它。我知道可以通过Graphics 类获取屏幕像素信息,如下所示:

this.graphics.Clear(Color.Black);
this.graphics.CopyFromScreen(pictureBoxPoint.X, pictureBoxPoint.Y, 0, 0, size);

但这并不排除放大镜对屏幕的影响,只是在用户看到的时候抓取它。理想情况下,我希望能够抓住整个屏幕,因为如果放大镜工具不是仅放大一部分,则应该可以看到它,如果这有意义的话。 整个屏幕空间,即使只有部分可见。

我快速浏览了Magnification API 文档页面,但我不知道这是否真的是我应该查看的地方。还有什么我可以做的吗?如果有人指出我正确的方向,我将不胜感激,因为我似乎在绕圈子。

非常感谢!

【问题讨论】:

    标签: c# .net windows-10 screen-capture magnification-api


    【解决方案1】:

    查看 github 项目karna-magnification,这将允许您将 Windows 窗体对象放入视图门户并放大光标下的任何内容。要捕获放大倍数,您只需要捕获表单的内容。 引用 github 项目后,在要用作放大镜视图面板的表单的构造函数中,添加

    using System.Windows.Forms;
    
    namespace WindowsFormsApp1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                Magnifier mg = new Magnifier(this);
            }
        }
    }
    

    从那里添加代码以使用表单的图形上下文来捕获图像。那部分我会留给你。

    【讨论】:

    • 不过,这不是我想要的。我想捕捉未放大屏幕的图像(放弃放大层)同时我正在使用 WIndows 10 放大镜工具或其他任何工具放大它以供我个人使用,如果这有意义的话。当屏幕只显示放大的部分时,如何拍摄整个屏幕空间的照片。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    相关资源
    最近更新 更多