我明白你的意思, 你明白我的意思了吗?
首先, 取要比较的两幅图象到两个TBitmap中,
第二步: 把左下角像素的颜色做为透明色, 分别生成两个region, (这个不难, 通过scanline
判断颜色是否透明色, 不是的话用createrectrgn, combinergn把它包含到region中, 偷懒
的话甚至可以create一个(x,y,x+1,y+1)大小的rect, 然后包含到region中!)
第三步: 通过GetRegionData可以取到region的信息, 其中包含一个rect(正好容纳整个region的rect),
也就知道这个region离坐标(0,0)的距离, 用OffsetRgn分别移动两个region到坐标(0,0)位置,
第四步: 简单的话可以用EqualRgn判断两个region是否相同(可以省略第三步?),
复杂点, 还是通过GetRegionData分别取得两个Region的全部信息, 其中包含所有构成这个
region的rect, 分别比较这些rect的坐标, 可以设置一个精度, 决定坐标和大小相差多少之内
的rect可以认为是相等的.
这样就可以判断一定大小精度内两幅图象是否相同了. 如果要连颜色一起判断的话就用scanline,
原理相同: 先移位, 再判断.
比较烦琐而已, 说不上难度.