Вновь созданное растровое изображение всегда имеет разрешение 120 точек на дюйм - PullRequest
0 голосов
/ 20 сентября 2019

Я работаю над большим решением, которое выполняет обработку изображений.У меня проблема с одним из (модульных) тестовых проектов.

У меня есть файл ресурса на диске с разрешением 96dpi / 96dpi.Но когда я загружаю его с помощью var img =Image.FromFile(fileName), я получаю растровое изображение с img.VerticalResolution == 120 и img.HorizontalResolution == 120.

. Если я явно изменяю разрешение с помощью ((Bitmap)img).SetResolution(96, 96);, разрешение меняется на 96.

Но потом, если я клонирую его var img2 = new Bitmap(img), тогда img2.VerticalResolution == 120 и img2.HorizontalResolution == 120

Я знаю, что это происходит только локально, потому что у других людей в команде нет этой проблемы, и тест проходит нормальномашины CI.Если я попытаюсь повторить это в консольном приложении на моем компьютере, у меня не возникнет этой проблемы - объект изображения, созданный из того же файла, имеет разрешение по вертикали и разрешение по горизонтали, равное 96 точек на дюйм.Чего мне не хватает?

ОБНОВЛЕНИЕ

Как указано, проблема возникает в модульных тестах.Тесты выполняются в конфигурации x86.Если я запускаю их с помощью стандартного окна обозревателя тестов Visual Studio, тесты проходят успешно.Проблема возникает, только когда я запускаю их с помощью окна теста ReSharper.

Итак, я провел несколько испытаний:

  • Консольное приложение - правильное разрешение
  • Запуск модульных тестовиз VS Test Explorer - правильное разрешение
  • Модульные тесты с использованием MSTest, запускаемые из окна ReSharper - правильное разрешение
  • Модульные тесты с использованием XUnit, запускаемые из окна ReSharper - правильное разрешение НЕ

Так что проблема с Resharper / XUnit

...