Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# getpixels()在xp和vista上获得正确的值,但在windows 7上使用时会稍微关闭_C#_Windows 7 - Fatal编程技术网

C# getpixels()在xp和vista上获得正确的值,但在windows 7上使用时会稍微关闭

C# getpixels()在xp和vista上获得正确的值,但在windows 7上使用时会稍微关闭,c#,windows-7,C#,Windows 7,我有一个C#程序,可以在xp和vista上正常工作,但它需要在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 = i

我有一个C#程序,可以在xp和vista上正常工作,但它需要在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和windows7上运行了完全相同的程序,得到了不同的值

它根本不允许我发布图片,只允许一个链接


第一个图像是原始图像,第二个是正确的图像,也是我在XP和Vista中获得的图像,最后一个图像是在Windows7中运行相同程序时的图像。虽然没有什么明显的区别,但这对我的工作很重要

根据文档,您确定您的程序确实正确吗?像这样的bug有时意味着您意外地依赖于未定义的行为。

如果您的意思是
Bitmap.GetPixel
,则该方法返回一个
颜色
结构。我假设当你说它“稍微关闭”时,返回颜色的RGB值与你期望的值略有不同


这可能是由于您的Windows 7 PC/图像的颜色深度与您的XP或Vista计算机的颜色深度不同,或者可能是Windows 7在使用.Net颜色时做了一些稍微不同的事情。这真的不重要,除非我怀疑您的代码正在寻找特定的颜色值。如果您发布更多详细信息,这会有所帮助。

我刚刚使用了libtiff.net


我正在对图像进行边缘检测,我必须逐像素地检查图像,我在XP、Vista、windows7和windows7上运行了完全相同的程序,得到了不同的值。System.Drawing.Bitmap image=新位图(目标)。Color t=image.GetPixel(j,i);int s=t.R;//我正在做一个灰度图像,所以我只得到一个值,上面返回的是windows 7的不同值。是的,我的意思是Bitmap.Getpixel。我得到其中一个RGB值,因为我正在处理tiff灰度图像。Color t=image.GetPixel(j,i);int s=t.R当我打印s时,例如,图像(0,0),它应该是220,如果您可以发布一个简单的代码示例,精确显示如何将文件加载到位图中,以及导致“问题”的实际TIFF文件,它将是221,我相信这会有所帮助。可能发生的情况是,Windows 7计算机使用不同的编解码器将TIFF解压缩为常规位图,从而导致像素值略有不同。您可以通过使用BMP文件而不是TIFF文件来避免此问题,但这可能不适用于您的应用程序;