Получить разрешение изображения в формате JPEG с помощью C # и среды .NET? - PullRequest
6 голосов
/ 24 сентября 2008

Наши клиенты будут загружать изображения, которые будут напечатаны на их документах, и нас попросили придумать способ получить разрешение изображения, чтобы предупредить их, если изображение имеет слишком низкое разрешение и будет выглядеть в пикселях в конечном продукте

Если дело доходит до этого, мы могли бы также использовать размеры, если кто-нибудь знает, как их получить, но разрешение будет предпочтительным

Спасибо

Ответы [ 4 ]

13 голосов
/ 24 сентября 2008

System.Drawing.Image

Image newImage = Image.FromFile("SampImag.jpg");
newImage.HorizontalResolution
8 голосов
/ 24 сентября 2008

Это зависит от того, что вы ищете ... если вы хотите DPI изображения, то вы ищете HorizontalResolution, который является DPI изображения.

Image i = Image.FromFile(@"fileName.jpg");
i.HorizontalResolution;

Если вы хотите выяснить, насколько велико изображение, вам нужно рассчитать размеры изображения:

int docHeight = (i.Height / i.VerticalResolution);
int docWidth = (i.Width / i.HorizontalResolution);

Это даст вам высоту и ширину документа в дюймах, которые затем можно будет сравнить с минимальным необходимым размером.

3 голосов
/ 04 мая 2010

DPI имеет смысл только при печати. 72 dpi - это стандарт Mac, а 96 dpi - стандарт Windows. Разрешение экрана учитывает только пиксели, поэтому разрешение экрана 800d600 точек на дюйм составляет 72 пикселя 800x600 пикселей.

В 80-е годы Mac использовал разрешение экрана / печати 72 точек на дюйм, чтобы соответствовать размеру экрана / печати, поэтому при отображении на экране изображения 1: 1 оно соответствовало размеру принтера. Windows улучшила разрешение экрана до 96 точек на дюйм, чтобы улучшить отображение шрифтов ... но, как следствие, изображение на экране больше не соответствует напечатанному размеру.

Итак, для веб-проекта не беспокойтесь о DPI, если изображение не для печати; 72dpi, 96dpi, даже 1200dpi должны отображать то же самое.

2 голосов
/ 24 сентября 2008
Image image = Image.FromFile( [file] );
GraphicsUnit unit = GraphicsUnit.Point;
RectangleF rect = image.GetBounds( ref unit );
float hres = image.HorizontalResolution;
float vres = image.VerticalResolution;
...