知识大全 浅谈.Net如何实现找出两幅图片的不同之处

Posted

篇首语:任何事情的发生必有其目的,并且有助于我。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 浅谈.Net如何实现找出两幅图片的不同之处相关的知识,希望对你有一定的参考价值。

浅谈.Net如何实现找出两幅图片的不同之处  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  初学 Net的时候 我就写了个QQ大家来找茬的外挂 其实主要的原理不过就是判断两幅图片不同之处 那时候的实现方法就是两幅图片不停的切换然后眼睛就会看到不同的地方 那时候很菜 不懂的timer让他实现自动切换 用了很土的方法设置了 个全局热键 F 热键截图 F 切换图片 /图片 就这样按F 切换来切换去 操作困难 也很没有效率 现在回忆起来也觉得很幼稚 呵呵 说了这么多废话 还是开始进入正题吧!

  

  一 现在说的第一种方法实现比较两幅图片不同之处 其实也就是上面开场白所说的方法 两幅图片不停的切换出现 当然是用Timer控件 而不是手动(要不就太土了)!容器就用PictureBox来显示图片吧 这种方法代码比较简单代码我就不贴出来 主要是说说思路!

  二 第二种方法 其实就是遍历 张图片的像素 找出不同的地方 然后标记上去 这种方法与第一种方法相比好处很明显 就是比较直观 第一种方法如果眼力不好或者有色盲的特殊人士 估计就很费力了 下面我贴出一些关键代码

  代码

      private void ImageCompare()

           

  

                Bitmap firstImage = new Bitmap( jpg );

                Bitmap secondImage = new Bitmap( jpg );

                bool A = true B = true;

                string firstPixel;

                string secondPixel;

  

                Graphics g = Graphics FromImage(firstImage);

                //消除锯齿

                g SmoothingMode = System Drawing Drawing D SmoothingMode AntiAlias;

                //填充背景颜色

                // Brush br = new SolidBrush(Color Red);

  

                if (firstImage Width == secondImage Width

                    && firstImage Height == secondImage Height)

               

                    for (int i = ; i < firstImage Width; i++)

                   

                        for (int j = ; j < firstImage Height; j++)

                       

               if (!firstImage GetPixel(i j) Equals(secondImage GetPixel(i j)))

                                    //设置不同的地方为红色

                                firstImage SetPixel(i j Color Red);

                           

                       

                   

              

            

  

  以上 种方法有需要注意的地方:

   副图片的大小要一样

   副图片截图的位置不要歪了 一定要精确 第一种方法歪了一些勉强可以识别 但是对第二种方法那简直就是杯具了

   上面 个方法是用来找出图片的不同之处 如果用于比较两幅图片是否相同 效率都比较低 不建议使用

  

cha138/Article/program/net/201311/12045

相关参考

浅谈小型立式锅壳锅炉的水处理

简述立式锅壳锅炉的水处理两种常用的方法以及所产生的效果。通过这两种水处理方法比较,找出两种水处理方法的不足之处和应该注意的环节。[关健词]小型立式锅壳锅炉;炉内加药处理;炉外化学水处理[中图分类号]T

浅谈小型立式锅壳锅炉的水处理

简述立式锅壳锅炉的水处理两种常用的方法以及所产生的效果。通过这两种水处理方法比较,找出两种水处理方法的不足之处和应该注意的环节。[关健词]小型立式锅壳锅炉;炉内加药处理;炉外化学水处理[中图分类号]T

浅谈小型立式锅壳锅炉的水处理

简述立式锅壳锅炉的水处理两种常用的方法以及所产生的效果。通过这两种水处理方法比较,找出两种水处理方法的不足之处和应该注意的环节。[关健词]小型立式锅壳锅炉;炉内加药处理;炉外化学水处理[中图分类号]T

知识大全 如何在不同.net版本实现单点登录

经过研究重写实现了一个可以在不同net版本中实现单点登录的简单方法现在和大家分享一下不足之处还望见谅   所谓单点登录(SingleSignOn就是在多个应用系统中用户只需要登录一次就可以访

知识大全 浅谈.Net中的对象相等

浅谈.Net中的对象相等  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Net中对象相等比较是看

知识大全 浅谈.NET中不一样的多态

浅谈.NET中不一样的多态  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在NET中多态通常意味

知识大全 浅谈.NET重写URL

浅谈.NET重写URL  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  具体使用方法  首先nfi

知识大全 浅谈 .NET 里的MTS

浅谈.NET里的MTS  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!事务处理模式是为参与事务处理的

知识大全 浅谈ASP.NET报表控件

浅谈ASP.NET报表控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  项目中有报表图形化的需

知识大全 浅谈.NET中加密和解密的实现方法

浅谈.NET中加密和解密的实现方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  NET将原来独