实际使用

Color actualcolor = pointBitmap.GetPixel(nowx, nowy);
if (actualcolor.R < 20 && actualcolor.G < 20 && actualcolor.B < 20)//黑点
{}

类库PointBitmap

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace DianZhen
{public class PointBitmap{Bitmap source = null;IntPtr Iptr = IntPtr.Zero;BitmapData bitmapData = null;public int Depth { get; private set; }public int Width { get; private set; }public int Height { get; private set; }public PointBitmap(Bitmap source){this.source = source;}public void LockBits(){try{// Get width and height of bitmapWidth = source.Width;Height = source.Height;// get total locked pixels countint PixelCount = Width * Height;// Create rectangle to lockRectangle rect = new Rectangle(0, 0, Width, Height);// get source bitmap pixel format sizeDepth = System.Drawing.Bitmap.GetPixelFormatSize(source.PixelFormat);// Check if bpp (Bits Per Pixel) is 8, 24, or 32if (Depth != 8 && Depth != 24 && Depth != 32){throw new ArgumentException("Only 8, 24 and 32 bpp images are supported.");}// Lock bitmap and return bitmap databitmapData = source.LockBits(rect, ImageLockMode.ReadWrite,source.PixelFormat);//得到首地址unsafe{Iptr = bitmapData.Scan0;//二维图像循环}}catch (Exception ex){throw ex;}}public void UnlockBits(){try{source.UnlockBits(bitmapData);}catch (Exception ex){throw ex;}}public Color GetPixel(int x, int y){unsafe{byte* ptr = (byte*)Iptr;ptr = ptr + bitmapData.Stride * y;ptr += Depth * x / 8;Color c = Color.Empty;if (Depth == 32){int a = ptr[3];int r = ptr[2];int g = ptr[1];int b = ptr[0];c = Color.FromArgb(a, r, g, b);}else if (Depth == 24){int r = ptr[2];int g = ptr[1];int b = ptr[0];c = Color.FromArgb(r, g, b);}else if (Depth == 8){int r = ptr[0];c = Color.FromArgb(r, r, r);}return c;}}public void SetPixel(int x, int y, Color c){unsafe{byte* ptr = (byte*)Iptr;ptr = ptr + bitmapData.Stride * y;ptr += Depth * x / 8;if (Depth == 32){ptr[3] = c.A;ptr[2] = c.R;ptr[1] = c.G;ptr[0] = c.B;}else if (Depth == 24){ptr[2] = c.R;ptr[1] = c.G;ptr[0] = c.B;}else if (Depth == 8){ptr[2] = c.R;ptr[1] = c.G;ptr[0] = c.B;}}}}
}

C#获取指定坐标点像素,效率更高快相关推荐

  1. PHP抓取网页指定内容(推荐用CURL效率更高)

    PHP抓取某页面指定内容 初学php研究了好几个小时最后问了同事,得以解决:下面我就以我网站的一个详情页为例子,给大家分享一下: 直接贴代码,注释写的很清楚了 [方法一] <?php //添加编 ...

  2. .NET快速信息化系统开发框架 V3.2-amp;gt;WinForm版本新增新的角色授权管理界面效率更高、更规范...

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/chinahuyong/article/details/76735793 角色授权管理模块主要是对角色 ...

  3. for循环和while循环哪个效率更高

    for循环和while循环哪个效率更高? 有人说while循环效率更高,有人说for循环的效率更高,今天我们就用事实分析一下哪个效率高? 实践如下,我们来写一个1亿的次的循环,在执行for和while ...

  4. 取代 Mybatis Generator,这款代码生成神器配置更简单,开发效率更高

    作为一名 Java 后端开发,日常工作中免不了要生成数据库表对应的持久化对象 PO,操作数据库的接口 DAO,以及 CRUD 的 XML,也就是 mapper. Mybatis Generator 是 ...

  5. 工作效率 工具_我使用的工具加快了我的工作流程,使我的工作效率更高

    工作效率 工具 by Egwuenu Gift 通过Egwuenu礼物 我使用的工具加快了我的工作流程,使我的工作效率更高 (The tools I use speed up my workflow ...

  6. SQL优化——IN和EXISTS谁的效率更高

    .点击上方"蓝字" 关注我们,享更多干货! IN和EXISTS被频繁使用在SQL中,虽然作用是一样的,但是在使用效率谁更高这点上众说纷纭.下面我们就通过一组测试来看,在不同场景下, ...

  7. ++i和i++哪个效率更高

    参考博文:https://blog.csdn.net/qq_38570571/article/details/81255717 这篇写的不错 在C++当中 ++i比i++效率更高

  8. 锤子手机Android auto,分享锤子手机Smartisan OS的几个使用小技巧,效率更高

    原标题:分享锤子手机Smartisan OS的几个使用小技巧,效率更高 老罗创办的锤子科技一直以来都追求着效率的提升和不随流俗的设计美感,锤子手机基于安卓深度定制的系统Smartisan OS正是体现 ...

  9. 一文带你彻底搞懂i++和++i的区别,谁的效率更高?

    作者简介:Codebowl靓仔,学妹的工具人,C++开发误入数据开发,梦想30岁退休的靓仔就是我啦. i++和++i对于初学者来说,一直是一个特别容易搞混的内容,相信很多人现在也没有完全搞清(作者初学 ...

最新文章

  1. 比特币核心(BCE)或许并没有你想象的强大
  2. 什么是CPU的虚拟化技术?优势又是什么
  3. 用route命令解决Wifi和网卡不能同时上内外网问题
  4. 2018计算机领域大事件,吕伟:2018年计算机行业回顾
  5. 【ROI 2019 Day2】课桌【贪心】【决策单调性】【分治】
  6. Java接口程序练习
  7. mfc编程淘汰了吗_工控编程,学完C++基础后再学什么?
  8. android 加载更多动画效果,Android实践之带加载效果的下拉刷新上拉加载更多
  9. 性能监控工具yourkit的安装及eclipse、tomcat的集成
  10. 还原数据库时不能独占访问
  11. Spring源码解析:Spring Aware 原理解析
  12. java实现阿里云接口发送短信验证码
  13. 小马哥-----高仿苹果6 plus刷机拆机多图展示 拆机主板图与开机界面图 6572芯片 v76机型
  14. MCS:离散随机变量——Poisson分布
  15. Transformer对接公司需求的调研报告
  16. K8s-kubectl远程管理集群
  17. 用js获取浏览器当前版本
  18. dy\ks直播间人气挂粉
  19. Win11安装KB5013943导致应用程序崩溃错误代码0xc0000135
  20. Flink 任务报错:flink FileNotFoundException: JAR file does not exist: -yn

热门文章

  1. 从0到1,了解NLP中的文本相似度
  2. Java程序员年薪40W,他1年走了别人5年的路(技术提炼)
  3. js--webSocket入门
  4. ant design后台模板-1.前端环境搭建
  5. BZOJ 3456: 城市规划 [多项式求逆元 DP]
  6. IOS-获取Model(设备型号)、Version(设备版本号)、app(程序版本号)等
  7. 模板元编程时的参数推导类型输出
  8. 《文献检索》随感-2003年10月24日
  9. ubuntu ssh 客户端查看服务器端图形界面
  10. 百度程序员哀叹:回老家发现村里很多人开保时捷,道奇等豪车,比程序员有钱多了!...