取色原理:将屏幕截图对象上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);
留下您的脚步
最近评论