怎么分析出上图中A B的位置?因为我想用具体数字如100替换掉它
如果你用颜色比较法的话就会有一个问题,如果你的A点和B点的颜色一样的话那就找不到。还有就是怎样替换呢?这个又是个麻烦事。我觉得用图像比较法比较好,不过这个准确度就比较麻烦了。
我这里有一个给照片打logo的代码,你看一下,或许能有帮助。这个是用BitmapData来实现的。
// 取以大图(X,Y)为起点,w * h 的矩形区域
BitmapData srcData = b0.LockBits(new Rectangle(X,Y,w,h),ImageLockMode.WriteOnly,PixelFormat.Format24bppRgb);
// 取整个Logo
BitmapData dstData = b1.LockBits(new Rectangle(0,0,w,h),ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
unsafe
{
byte* pIn = (byte*)srcData.Scan0.ToPointer();
byte* pLogo = (byte*)dstData.Scan0.ToPointer();
for (int y = 0; y < h; y++)
{
for (int x = 0; x < w; x++)
{
// 复制Logo图的像素
pIn[0] = (byte)pLogo[0];
pIn[1] = (byte)pLogo[1];
pIn[2] = (byte)pLogo[2];
pIn += 3;
pLogo += 3;
}
pIn += srcData.Stride - w * 3;
pLogo += dstData.Stride - w * 3;
}
b0.UnlockBits(srcData);
b1.UnlockBits(dstData);
}