Delphi 比较两个位图是否相同


本文整理自网络,侵删。

 
function IsBmpSame(bmp1,bmp2: TBitmap): Boolean;   
var  
  i,j: Integer;   
  ScanLine1,ScanLine2: PByteArray;   
  Count: Integer;   
begin  
  Result := (bmp1.Height = bmp2.Height) and  
            (bmp1.Width = bmp2.Width) and  
            (bmp1.PixelFormat = bmp2.PixelFormat);   
  if Result then  
  begin  
    i := Integer(bmp1.PixelFormat);   
    if i < 4 then  
      i := 4  
    else if i = 4 then  
      inc(i);   
    Count := (i - 3) * bmp1.Width - 1;   
    for i:=0 to bmp1.Height-1 do  
    begin  
      ScanLine1 := bmp1.ScanLine[i];   
      ScanLine2 := bmp2.ScanLine[i];
      for j := 0 to Count do  
        if ScanLine1[j] <> ScanLine2[j] then  
        begin  
          Result := False;   
          Exit;   
        end;   
    end;   
  end;   

end

 

来源:http://www.coder163.com/language/delphi/

相关阅读 >>

Delphi 获取指定当前目录下指定文件扩展名所有文件

Delphi xe sha1

windows 编程 窗体生成的过程

Delphi 根据进程id获取程序ico图标

Delphi datasnap 的连接事件顺序图

Delphi 如何打开记事本并显示指定内容

Delphi 如何确定活动桌面是否已启用

gdi tgpimage 提取 gif 动画

Delphi fmx 图像处理成圆角图像

minsperday:一天中有多少分钟

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...