技术思绪摘录旅行笔记
取色和截图工具是日常很常用的功能,特别是qq的截图,现在加入了一些AI识图的功能,很好用,但是曾经都是从最简单的取色和截图工具一点点升级到现在这么强大的工具,那么这些工具在.NET C#语言下,如何实现呢?

取色原理:将屏幕截图对象上1个像素画在新的画板对象上,然后对画板上的图片对象取其像素颜色。

private static Bitmap cache = new Bitmap(1, 1);
private static Graphics tempGraphics = Graphics.FromImage(cache);
public Color GetPixelColor(int x, int y)
{
   tempGraphics.CopyFromScreen(x, y, 0, 0, new Size(1, 1));
   return cache.GetPixel(0, 0);
}

代码释义:根据1像素大小的图像,创建一个画板,然后把屏幕从指定像素copy一像素到画板上,最后取图像的像素信息即可。一般取色都会按住鼠标移动到最终位置,实际上取了无数次色,为确保速度,我们的图像和画板都是同一个对象。

调用

Color col = GetPixelColor(500,500);
string colstr = ColorTranslator.ToHtml(col); //十六进制颜色

截图原理:知道取色原理之后,其实扩大copy屏幕尺寸即可完成,只不过画板和图像都是动态的,因为每次截图,屏幕都是需要用最新的。

Bitmap cache1 = new Bitmap(500, 500);
Graphics tempGraphics1 = Graphics.FromImage(cache1);
tempGraphics1.CopyFromScreen(500, 500, 0, 0, new Size(500, 500));
cache1.Save("Screen.png", ImageFormat.Png);


CarsonIT 微信扫码关注公众号 策略、创意、技术

留下您的脚步

 

最近评论

查看更多>>

站点统计

总文章数:275 总分类数:18 总评论数:88 总浏览数:124.94万

精选推荐

阅读排行

友情打赏

请打开您的微信,扫一扫