getpixels () получает правильное значение на xp и vista, но слегка отключается при использовании на windows 7 - PullRequest
2 голосов
/ 27 мая 2010

У меня есть программа на C #, которая корректно работает на XP и Vista, но ее нужно использовать на Windows 7, я не смог придумать решение, похоже, что getpixels просто не работает прямо на Windows 7 .

Я получаю одно из значений RGB, потому что имею дело с изображениями в оттенках серого.

 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 ]

1 голос
/ 27 мая 2010

Если вы имеете в виду Bitmap.GetPixel, этот метод возвращает структуру Color. Я предполагаю, что когда вы говорите, что это «слегка отключено», значения RGB возвращаемого цвета немного отличаются от ожидаемого значения.

Вероятно, это связано с тем, что ваш ПК / образ Windows 7 имеет глубину цвета, отличную от ваших компьютеров с XP или Vista, или может случиться так, что Windows 7 делает что-то немного другое под капотом .Net цветов. Это действительно не должно иметь значения, за исключением того, что я подозреваю, что ваш код ищет определенное значение цвета. Будет полезно, если вы разместите дополнительную информацию.

0 голосов
/ 17 июня 2010

Я только что закончил использовать libtiff.net.

http://bitmiracle.com/libtiff/

0 голосов
/ 27 мая 2010

Вы уверены, что ваша программа действительно правильная, согласно документации? Подобные ошибки иногда означают, что вы случайно полагаетесь на неопределенное поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...