Graphics 来自编程屏幕捕获的图像与外部捕获程序不同

Graphics 来自编程屏幕捕获的图像与外部捕获程序不同,graphics,gdi,screen-capture,Graphics,Gdi,Screen Capture,我一直在临时使用诸如Hypersnap之类的外部程序来捕获窗体上具有一些高色度线条图形的区域。这是计划形成时的临时解决方案 最后,我们开始在C程序中以编程方式进行捕获。惊喜高色度线明显减弱 IOW: 我使用Hypersnap捕获程序正在向HyperSnap1.jpg显示的图形 我使用内部C捕获代码将同一区域捕获到InternalSnap2.jpg 现在,我使用另一个外部文件查看器显示这两个.jpg捕获文件。 HyperSnap1.jpg图像与我的程序在屏幕上显示的图形完全相同。 Internal

我一直在临时使用诸如Hypersnap之类的外部程序来捕获窗体上具有一些高色度线条图形的区域。这是计划形成时的临时解决方案

最后,我们开始在C程序中以编程方式进行捕获。惊喜高色度线明显减弱

IOW:

我使用Hypersnap捕获程序正在向HyperSnap1.jpg显示的图形 我使用内部C捕获代码将同一区域捕获到InternalSnap2.jpg 现在,我使用另一个外部文件查看器显示这两个.jpg捕获文件。 HyperSnap1.jpg图像与我的程序在屏幕上显示的图形完全相同。 InternalSnap2.jpg看起来非常接近,但色度较低,尤其是当原始 图像具有高色度的红色或黄色线条

好吧,那一定是捕获代码,对吧?我交换了几个不同的C捕获函数,这些函数我在Codeproject和其他地方找到过。所有人都做同样的事情,降低色度。因此,要么所有这些函数都有类似的错误,要么Hypersnap应用了一个技巧


这是一个已知的问题吗?如果是,是否有解决办法?

在第二步中,您是否尝试过将捕获保存为bmp等非破坏性格式?也许你的jpeg压缩得太多了。斯蒂芬:我相信你说的是对的!我本应该检查一下,但这相当令人惊讶。考虑到保存的区域是单色线,我不认为通过降低色度可以提高图像压缩比。毕竟,这只是一个数字。jpg图像只是显示较低的关键点红色,而不是高色度红色。默认压缩比必须非常极端才能导致这种情况。谢谢,斯蒂芬。