只需对两个非常相似的图像(一个图像是另一个图像的编辑版本)进行逐像素比较,然后将差异写入新文件。
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
pix1 = src.GetPixel(x, y);
pix2 = comp.GetPixel(x, y);
if (pix1 != pix2)
{
dest.SetPixel(x, y, pix1);
}
}
}
Run Code Online (Sandbox Code Playgroud)
src
并且comp
是两个图像进行比较,并dest
仅仅是一个新的形象。这需要相当长的时间。
什么是更快的方法?
也许没有必要为了比较而实际获取像素?
要比较像素,您需要读取它们。但是,这GetPixel()
是一种非常慢的方法,因此不建议这样做,除非您仅检查了非常少量的数据。
为了获得更好的性能,最好的方法是使用不安全的代码并改用指针。互联网上有很多这样的示例,下面是我发现的一些示例,它解释了一些问题并为此提供了两种不同的解决方案。
一定要同时检查第二部分,他在其中有一些基准并链接到完整的资料。
归档时间: |
|
查看次数: |
13928 次 |
最近记录: |