Как найти значение "пиксель на дюйм" в изображении 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