Как найти значение "пиксель на дюйм" в изображении JPG?

Я пытаюсь проверить определенные изображения, чтобы не допустить изображения ниже 300 пикселей на дюйм, есть ли способ найти его на ASP.NET с помощью C#?

2 ответа

Image Объект.NET Framework предоставит вам PPI битмапа (включая JPG).

Image image = new Bitmap(@"C:\myimage.jgp");
float ppi = image.HorizontalResolution; // the image's pixels per inch
float widthInInches = image.PhysicalDimension.Width / ppi;

Кажется, работает на меня. Мне удалось заметить, что конкретное изображение, которое я использую в PDF, составляет 90 ppi.

Вы должны прочитать данные EXIF ​​из изображения.

Здесь у вас есть пример того, как вы можете сделать это, используя ExifLib

ExifLib - быстрый Exif экстрактор данных для.NET 2.0+

Имейте в виду, что не все изображения в формате JPEG имеют информацию о разрешении. И что даже если они есть, вы можете распечатать их, используя совершенно другое разрешение. Т.е. ширина изображения 200px может быть напечатана с использованием ширины 1 дюйм - 200dpi. Это же изображение, напечатанное с использованием 2 дюймов, имеет разрешение 100 dpi, а 1/2 дюйма - 400dpi.

РЕДАКТИРОВАТЬ: Это даже возможно получить эту информацию с нативной.NET Framework Image.PropertyItems Property

Другие вопросы по тегам