C# 判断两张图片是否一致的快速方法

#region 判断图片是否一致 
///
<summary> 
/// 判断图片是否一致 
///
</summary> 
/// <param
name="img">图片一</param> 
/// <param
name="bmp">图片二</param> 
///
<returns>是否一致</returns> 
public bool
IsSameImg(Bitmap img, Bitmap
bmp) 

//大小一致 
if
(img.Width == bmp.Width && img.Height ==
bmp.Height) 

//将图片一锁定到内存 
BitmapData
imgData_i = img.LockBits(new Rectangle(0, 0, img.Width, img.Height),
ImageLockMode.ReadOnly,
PixelFormat.Format24bppRgb); 
IntPtr ipr_i =
imgData_i.Scan0; 
int length_i = imgData_i.Width *
imgData_i.Height * 3; 
byte[] imgValue_i = new
byte[length_i]; 
Marshal.Copy(ipr_i, imgValue_i, 0,
length_i); 
img.UnlockBits(imgData_i); 
//将图片二锁定到内存 
BitmapData
imgData_b = img.LockBits(new Rectangle(0, 0, img.Width, img.Height),
ImageLockMode.ReadOnly,
PixelFormat.Format24bppRgb); 
IntPtr ipr_b =
imgData_b.Scan0; 
int length_b = imgData_b.Width *
imgData_b.Height * 3; 
byte[] imgValue_b = new
byte[length_b]; 
Marshal.Copy(ipr_b, imgValue_b, 0,
length_b); 
img.UnlockBits(imgData_b); 
//长度不相同 
if
(length_i != length_b) 

return
false; 

else 

//循环判断值 
for
(int i = 0; i < length_i;
i++) 

//不一致 
if
(imgValue_i[i] !=
imgValue_b[i]) 

return
false; 


return
true; 


else 

return
false; 


#endregion

C# 判断两张图片是否一致的快速方法,布布扣,bubuko.com

时间: 2024-10-13 00:30:12

C# 判断两张图片是否一致的快速方法的相关文章

php判断两张图片是否相同

1 <?php 2 /** 3 * sha1_file 4 计算并返回由 filename 指定的文件的 sha1 散列值. 5 该散列值是一个 40 字符长度的十六进制数字 6 * 成功返回一个字符串,否则返回 FALSE. 7 **/ 8 9 //这两个方法只能判断两张完全相同的图片,包括文件的大小,尺寸,另外这个方法还可以用来判断文件. 10 $file = __DIR__.DIRECTORY_SEPARATOR."1.jpg"; 11 12 $file2 = __DIR_

opencv_判断两张图片是否相同

QQ:231469242 pip install opencv 如果找不到版本,去非官方下载opencv第三方包http://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载好文件放入C:/Anaconda3/Scripts 文件夹, 然后 用pip install opencv安装 # -*- coding: utf-8 -*- """ Created on Sat Dec 24 10:42:10 2016 @author: daxiong &q

C# 判断两张图片是否一致,极快速

#region 判断图片是否一致 /// <summary> /// 判断图片是否一致 /// </summary> /// <param name="img">图片一 /// <param name="bmp">图片二 /// <returns>是否一致</returns> public bool IsSameImg(Bitmap img, Bitmap bmp) { //大小一致 if (i

C#判断两个字符串是否相等的方法 ,还有char赋空值办法。

1 string str1="Test"; 2 string str2 = "Test"; 3 if (str1==str2) //第一种判断方式 4 { 5 //第二种判断方式 6 int result1 = str1.CompareTo(str2); 7 Console.WriteLine(result1); //输出result1=0 8 9 //第三种判断方式 10 int result2=String.Compare(str1, str2); 11 Con

判断两直线是否相交的叉积方法

struct point { double x,y; }; struct line { point a,b; }lines[110]; double chaji(point a,point b,point c,point d) { return (b.x-a.x)*(d.y-c.y)-(b.y-a.y)*(d.x-c.x); } bool isin(line l1,line l2) { if(chaji(l1.a,l2.a,l1.a,l1.b)*chaji(l1.a,l1.b,l1.a,l2.b

[leetcode]242. Valid Anagram判断两个字符串是不是包含相同字符的重排列

/* 思路是判断26个字符在两个字符串中出现的次数是不是都一样,如果一样就返回true. 记住这个方法 */ if (s.length()!=t.length()) return false; int[] words = new int[26]; for (int i = 0; i < s.length(); i++) { words[s.charAt(i)-'a']++; words[t.charAt(i)-'a']--; } for (int i = 0; i < 26; i++) { i

Java如何判断两个集合的元素是否完全相等

一,实现 1. 最简单粗暴的方法,遍历循环 1 package list.demo; 2 3 import java.io.Serializable; 4 import java.util.*; 5 import java.util.stream.Collectors; 6 7 /** 8 * 判断两个集合是否相等 9 */ 10 public class CheckDiffList implements Serializable { 11 public static void main(Str

快速的判断两个字符串型数组是否有交集

■[面试题]如何快速的判断两个数组是否有交集 public boolean hasIntersection(String[] array1, String[] array2) { ... } array1中,只要有一个在array2中,存在,就返回true,否则返回false 求最快的方法 原帖:http://www.oschina.net/question/1756518_241715 ■代码 --------------------------------------------------

判断两个线段是否相交

我们的问题是这样的:给定一条线段的起点为$A_1$.终点为$A_2$,另一条线段的起点为$B_1$.终点为$B_2$,问线段$A_1A_2$和线段$B_1B_2$是否相交? 我们首先解释一下,两条线段相交的概念是指,存在一个点,这个点同时在两条线段上. 方法一(解方程法): 容易知道,线段$A_1A_2$上的点的集合为$A = A_1 * (1 - r_1) + A_2 * r_1$,其中$r_1 \in [0, 1]$:同理,线段$B_1B_2$上的点的集合为$B = B_1 * (1 - r