我有一个可以在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上运行完全相同的程序得到了不同的值。
根本不允许我发布图像,只发布一个链接。
第一张图片是原始图片,第二张图片是正确的图片,也是我用XP和Vista得到的图片,最终图片是在Windows 7中运行相同程序时的图像。没有太多可见的图像差异,但它对我正在做的事情很重要。
答案 0 :(得分:1)
如果您的意思是Bitmap.GetPixel
,那么该方法会返回Color
结构。我假设当你说它“略微偏离”时,返回颜色的RGB值与你期望的值略有不同。
这可能是因为您的Windows 7 PC /图像具有与XP或Vista计算机不同的颜色深度,或者可能是Windows 7在.Net颜色的引擎盖下略有不同。这真的无关紧要,除了我怀疑你的代码正在寻找特定的颜色值。如果您发布了其他详细信息,这将有所帮助。
答案 1 :(得分:0)
根据文档,你确定你的程序是否真的正确吗?像这样的错误有时意味着你不小心依赖于未定义的行为。
答案 2 :(得分:0)
我最终使用的是libtiff.net。