#c# #image #resolution
#c# #изображение #разрешение
Вопрос:
У меня есть два изображения:
Name Type Width Height HRes VRes
img01 GIF 256 256 384 96
img02 TIFF 1728 1147 200 100
Внутренний просмотрщик Windows показывает их с использованием разных шаблонов:
- img01 отображается как изображение размером 256×256 (квадратное)
- img02 отображается в виде вертикального изображения (несмотря на ширину> высоту), и формат изображения правильный
После увиденного поведения img02 я подумал, что отображаемый размер задается:
Display_Width = max(HRes,VRes) * Width / HRes
Display_Height = max(HRes,VRes) * Height / VRes
Но это не подходит для img01, который отображается как 256×256!!
Если я использую класс Image для загрузки этих изображений, разрешение не учитывается, поэтому img02 отображается горизонтально и искажается в соответствии с правильным форматом.
Если Windows internal Viewer показывает их правильно, я думаю, должно быть какое-то свойство, чтобы понять, следует ли учитывать разрешение или нет.
С классом Image у меня есть свойства Flags и PropertyItems, но я действительно не понимаю, являются ли они теми, на которые я должен смотреть.
Можете ли вы научить меня правильному методу отображения изображений (с использованием класса Image) без искажений?
Спасибо
Ответ №1:
Соотношение сторон в файлах GIF очень необычно, поскольку GIF — это формат, используемый для хранения графики, предназначенной для отображения на экранах компьютеров. На самом деле, файлы GIF87a вообще не имеют соотношения сторон, а GIF89a хранят не фактическое соотношение сторон, а приблизительное.
С другой стороны, файлы TIFF по большей части используются графическими дизайнерами, фотографами и издателями, поэтому концепция соотношения сторон в пикселях является основной для формата, поскольку она позволяет этим файлам перемещаться между различными средами отображения.
Я предполагаю, что большинство декодеров GIF игнорируют соотношение сторон в формате GIF89a. Я думаю, вы должны сделать то же самое.
Комментарии:
1. Спасибо, Мигель, 1 за ваш ответ, потому что это звучит разумно. Я хотел бы получить другие ответы, чтобы понять, существует ли всегда действительный метод, прежде чем начинать различать по типу файла. Я надеюсь, что смогу найти некоторый набор битов или нет внутри свойств изображения…
2. Вы проверили поле соотношения сторон в пикселях в своем GIF-изображении? Для всех изображений, которые я проверил, установлено значение 0, что означает 1: 1.
3. Мне было интересно узнать об изображении GIF, а не о вашем классе изображений. Имеет ли он соотношение сторон в пикселях? Откуда вы взяли цифры 384/96 HRes / VRes, если не из соотношения сторон?
4. Из класса Image: он имеет как размер, так и разрешение (по горизонтали и вертикали). Те же данные приведены на вкладке свойств проводника…