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

时间: 2024-10-29 03:04:43

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

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

 这篇文章主要介绍了C# 判断两张图片是否一致的快速方法,需要的朋友可以参考下 代码如下: #region 判断图片是否一致  /// <summary>  /// 判断图片是否一致  /// </summary>  /// <param name="img">图片一</param>  /// <param name="bmp">图片二</param>  /// <returns>是

水晶报表图片不显示两种问题分析及解决方法_实用技巧

水晶报表布置后里面的图片不显示的情况,分两种: 一是:水晶报表工具栏上的图片不显示: 二是:水晶报表中的的图片对象不显示: 针对第一种情况的解决方法: 对于工具栏上的图片不显示是由于发布的服务器上,水晶报表所需要的站点相关图片样式 没有找到. 在水晶报表图片不显示的页面上,看页面的源代码.可在<head></head>之间找到 复制代码 代码如下: </head> <link href="/aspnet_client/System_Web/2_0_507

asp.net 判断数组是否存在某个值的方法_实用技巧

方法一: 复制代码 代码如下: string str1 = "0,1,2,3,4,5,6 "; string[] str = str1.Split( ', '); bool hasFlag=false; foreach (string a in str) { if (a == "7 ") { hasFlag=true; break; } } if(hasFlag) { //执行当前页 } else { //跳转 } 方法二 复制代码 代码如下: string []

JavaScript中判断两个字符串是否相等的方法_基础知识

先将用户的输入值全部转换为大写(或小写),然后再行比较: var name = document.form1.txtUserName.value.toLowerCase(); if(name == "urname") { // statements go here. }       JavaScript有两种相等运算符.一种是完全向后兼容的,标准的"==",如果两个操作数类型不一致,它会在某些时候自动对操作数进行类型转换,考虑下面的赋值语句: var strA =

Asp.net SignalR快速入门_实用技巧

今天的专题就是让大家可以快速的上手Asp.net SignalR.废话不多说了,下面正式进入今天专题的内容. 二.Asp.net SignalR 是个什么东东  Asp.net SignalR是微软为实现实时通信的一个类库.一般情况下,SignalR会使用JavaScript的长轮询(long polling)的方式来实现客户端和服务器通信,随着Html5中WebSockets出现,SignalR也支持WebSockets通信.另外SignalR开发的程序不仅仅限制于宿主在IIS中,也可以宿主在

.NET程序调试技巧(一):快速定位异常的一些方法_实用技巧

作为一个程序员,解BUG是我们工作中常做的工作,甚至可以说解决问题能力是一个人工作能力的重要体现.因为这体现了一个程序员的技术水平.技术深度.经验等等. 那么在我们解决BUG的过程中,定位问题是非常重要的.有句话叫"发现问题是解决问题的一半. 本文讲述就快速定位异常(专指.NET程序异常)的方法.包括在本机定位异常,在客户环境定位.net程序异常,在客户环境定位SilverLight异常. 一:定位本机异常 在我们本机定位异常很容易.假设我们都是使用的的VisualStudio,那么只需要在调试

asp.net实现上传图片时判断图片的模式GRB或CMYK的方法_实用技巧

本文实例讲述了asp.net实现上传图片时判断图片的模式GRB或CMYK的方法.分享给大家供大家参考,具体如下: Bitmap bmp = new Bitmap(allow_fileStream); //文件路径 allowUpload = stringHelper.IsCMYK(bmp) == "true" ? false : true; //返回true字符串则图片不是RGB模式的 public string IsCMYK(System.Drawing.Image img) { s

ASP.net判断上传文件类型的三种有效方法_实用技巧

一.安全性比较低,把文本文件1.txt改成1.jpg照样可以上传,但其实现方法容易理解,实现也简单,所以网上很多还是采取这种方法. 复制代码 代码如下: Boolean fileOk = false; string path = Server.MapPath("~/images/"); //判断是否已经选取文件 if (FileUpload1.HasFile) { //取得文件的扩展名,并转换成小写 string fileExtension = System.IO.Path.GetEx

asp.net及javascript判断是否手机访问的方法_实用技巧

本文实例讲述了asp.net及javascript判断是否手机访问的方法.分享给大家供大家参考,具体如下: /// <summary> /// 判断手机用户UserAgent /// </summary> /// <returns></returns> private bool IsMobile() { HttpContext context = HttpContext.Current; if (context != null) { HttpRequest