getpixels()在xp和vista上获取正确的值,但在Windows 7上使用时稍微关闭

时间:2010-05-27 19:09:10

标签: c# windows-7

我有一个可以在xp和vista上正常工作的C#程序,但它需要在Windows 7上使用,我无法提出解决方案,看起来getpixels在Windows 7上无法正常工作

我正在获取其中一个RGB值,因为我正在处理tiff灰度图像。

 System.Drawing.Bitmap image;// this is in a separate class

 image = new Bitmap(destination);// this is in the constructor 

 Color t = image.GetPixel(j, i); // this is in a separate function
 int s = t.R 

当我打印s时,例如,图像(0,0),它应该是220,它将是221

我正在对图像进行边缘检测,我必须逐个像素地浏览图像,我在XP,Vista,windows7和Windows 7上运行完全相同的程序得到了不同的值。

根本不允许我发布图像,只发布一个链接。

enter image description here

enter image description here

enter image description here

第一张图片是原始图片,第二张图片是正确的图片,也是我用XP和Vista得到的图片,最终图片是在Windows 7中运行相同程序时的图像。没有太多可见的图像差异,但它对我正在做的事情很重要。

3 个答案:

答案 0 :(得分:1)

如果您的意思是Bitmap.GetPixel,那么该方法会返回Color结构。我假设当你说它“略微偏离”时,返回颜色的RGB值与你期望的值略有不同。

这可能是因为您的Windows 7 PC /图像具有与XP或Vista计算机不同的颜色深度,或者可能是Windows 7在.Net颜色的引擎盖下略有不同。这真的无关紧要,除了我怀疑你的代码正在寻找特定的颜色值。如果您发布了其他详细信息,这将有所帮助。

答案 1 :(得分:0)

根据文档,你确定你的程序是否真的正确吗?像这样的错误有时意味着你不小心依赖于未定义的行为。

答案 2 :(得分:0)

我最终使用的是libtiff.net。

http://bitmiracle.com/libtiff/