zoukankan      html  css  js  c++  java
  • 屏幕任意点颜色拾取

    发现很多软件颜色都很养眼,却不知具体的颜色值是多少,好参考一下。于是想做个屏幕取色的东西。不过这个东西纯粹是为了技术目的,用QQ就可以搞到这个颜色值,就连画笔都可以,只不过复杂些罢了。先把效果放上来。如图1

     

    1 Color Picker(很土啊)

    做这个东西只要解决如下的两个问题:

    1.       全局鼠标钩子:做这个东西的唯一一个技术难点,虽然网上有各种C++DLL实现方式,但是总觉得为了一个HOOK,在C#的项目里建立一个C++的项目感觉很不爽。后来终于找到了不需要新建项目的方法。(下文介绍。)

    2.       获取鼠标所在点的颜色值。对于有经验的人来说,这个不是个问题。没有经验的人,Google一下,其实也不是个问题。

    微软的一篇帮助文档上信誓旦旦地说“Global hooks are not supported in the .NET framework”。不知害得多少人绕过.NET去实现全局钩子。可就是有人不信这个邪,做出了不需要DLLC#实现的全局钩子(参见此文)。虽然只限于鼠标、键盘钩子,但也足够用了。

    第一个问题算是解决了。再来看第二个问题。屏幕取色。稍稍Google一下就可以知道,用Graphics对象的CopyFromScreen方法就可以了。可是GraphicsForm里的东西,在WPF里没有Graphics对象啊。当然也可以再来个API调用的,不过总感觉直接调用API不好。所以想来想去,还是在这个WPF项目里添加了对System.Drawing的引用。并把它包成了一个类。代码如下。

      

    PointColorPicker

     完整的代码下载

  • 相关阅读:
    UVa 10088 (Pick定理) Trees on My Island
    LA 3295 (计数 容斥原理) Counting Triangles
    LA 5846 (计数) Neon Sign
    java是什么?软帝学院告诉你学Java能做什么?Java有什么特性?
    【软帝学院】一套好的java基础教学视频需要哪些有哪些内容
    推荐五个java基础学习网站,小白必备
    学习java设计模式有用吗?懂这六个原则,编程更轻松
    Java是什么?只需5分钟,了解java必须要知道的知识点
    软帝学院:自学java到底难不难?做好这几步,少走3年弯路
    软帝学院:java开发程序很难吗?学会这十步,5分钟搞定一个程序
  • 原文地址:https://www.cnblogs.com/nankezhishi/p/1340979.html
Copyright © 2011-2022 走看看