能否实现对被当前窗体所遮挡住的屏幕进行截图?

capsclock 2016-10-21 01:40:39
本意是想实现整个窗体工作区的毛玻璃效果,但是查到的方法挨个事了一遍都不好使。
于是脑洞一开,想着把被窗体工作区所遮挡住的部分截个图,再来个高斯模糊,再设置为窗体的背景图片,整一个假透明。
结果卡在了截图部分。
有什么方法能够实现吗?
...全文
377 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2016-10-21
  • 打赏
  • 举报
回复
也不能说一定就不可以,看你怎么截了
        public Form1()
{
InitializeComponent();
RegionCopy();
}

void RegionCopy()
{
Image objImage = new Bitmap(Width, Height);
Graphics gd = Graphics.FromImage(objImage);
gd.CopyFromScreen(Location, new Point(0, 0), Size);
IntPtr dc1 = gd.GetHdc();
gd.ReleaseHdc(dc1);
this.BackgroundImage = objImage;
}
john_QQ:2335298917 2016-10-21
  • 打赏
  • 举报
回复
这个的确比较难,因为windows的机理就是每个窗口负责自己的绘制。因此,系统可能没有办法获取相应的图像。除非,你得到被遮住窗口的DC,知道了它是怎么画的。
crystal_lz 2016-10-21
  • 打赏
  • 举报
回复
放弃吧 首先你高斯模糊的效率的有多高?你如何做到实时毛玻璃效果?你窗体背后是一张GIF动态图或者视频 你是不是需要实时刷新? 你一帧的图像得有一下步骤 获取桌面背景图 获取桌面所有在你窗体之下的窗体 把获取出来的窗体以及背景图按照z序列叠加一张图像出来 然后高斯模糊 然后设置背景图 你觉得这一个过程需要多少执行时间? 你可以使用BitBlt函数直接从窗体上拷贝目标窗体的图像 但是不是所有窗体都能让你拷贝 比如一些视屏播放器或者游戏 如果系统并没有为目标窗体缓存被挡住部分 你也没有办法 这个看系统的是否有为他缓存 如果能搞 早就有人捣鼓了 尤其是那些搞UI的人
下载代码方式:https://pan.quark.cn/s/4dd9e377add0 【Origin斜率计算插件】是一款专为Origin 8.0环境开发的专用软件工具,其核心作用在于协助用户高效且精确地测定数据曲线的斜率值。Origin作为一款功能完备的科学数据分析与图形绘制软件,在科研及工程多个领域得到了广泛的应用。在科学研究过程中,斜率计算占据着核心地位,例如在物理学领域涉及速度与加速度的测算,化学反应速率的评估,生物医学研究的应用,以及工程问题的解决方案中均具有不可或缺的作用。 此插件的部署流程极为便捷,用户只需将压缩文件展开,随后将内部的Tangent.opk文件直接传送至正在运行的Origin 8.0软件操作界面中。这种直观的操作模式让用户无需经历繁琐的步骤即可完成插件的部署,从而有效提升了工作效率。 Origin 8.0的斜率计算性能主要体现在以下几个层面: 1. **曲线拟合**:Origin具备对多种线性与非线性曲线进行拟合的能力,用户能够借助拟合所得的数据点来求解曲线的斜率。这对于洞察数据变化趋势及模型验证具有决定性意义。 2. **数据处理**:在Origin平台中,用户可以便捷地导入实验数据,并对这些数据进行筛选、排序、平滑等初步处理,从而保障斜率计算的可靠性。 3. **图层操作**:Origin允许用户在不同图层之间进行操作,这在分析多个数据集时显示出显著优势。用户可以在每个图层上独立进行斜率计算,以便对比不同情境下的结果。 4. **Tangent分析**:该插件的核心特性在于能够在曲线图上自动或手动添加切线,并直接获取切线的斜率值。用户能够选择特定的点或区间,进而计算出瞬时斜率或平均斜率。 5. **自定义脚本**:Origin支...

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧