Uzyskaj rozdzielczość obrazu JPEG przy użyciu C# i środowiska .NET?


6

Nasi klienci będą przesyłać zdjęcia do wydrukowania na swoich dokumentach. Zostaliśmy poproszeni o wymyślenie sposobu uzyskania rozdzielczości obrazu w celu ostrzeżenia, jeśli obraz ma zbyt niską rozdzielczość i będzie wyglądał pikselowo w produkcie końcowym

Jeśli chodzi o niej możemy również pójść o wymiarach jeśli ktoś wie jak uzyskać te jednak uchwała byłaby korzystna

Dziękuję

13

System.Drawing.Image

Image newImage = Image.FromFile("SampImag.jpg"); 
newImage.HorizontalResolution 

2
Image image = Image.FromFile([file]); 
GraphicsUnit unit = GraphicsUnit.Point; 
RectangleF rect = image.GetBounds(ref unit); 
float hres = image.HorizontalResolution; 
float vres = image.VerticalResolution; 

8

Zależy od tego, czego szukasz ... jeśli chcesz DPI obrazu, to szukasz HorizontalResolution, która jest DPI obrazu.

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

Jeśli chcesz dowiedzieć się, jak duży obraz jest następnie trzeba obliczyć wymiary obrazu, który jest:

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

To daje wysokość dokumentów i szerokość w calach, które możesz wtedy porównać do wymaganego minimalnego rozmiaru.

  0

+1. Brian, uratowałeś mnie od wielu godzin badań, świetnego wglądu! 13 maj. 102010-05-13 21:41:14


3

DPI ma sens tylko podczas drukowania. 72dpi to standard Mac, a 96dpi to standard Windows. Rozdzielczość ekranu uwzględnia tylko piksele, więc jpeg o rozdzielczości 72 dpi 800 x 600 ma tę samą rozdzielczość ekranu niż rozdzielczość 800 x 600 pikseli o rozdzielczości 96 dpi.

Powrót do lat 80., Mac używał ekranu 72dpi/rozdzielczości drukowania, aby dopasować ekran/rozmiar wydruku, więc gdy miałeś obraz na ekranie o 1: 1, odpowiadał on tej samej wielkości na drukarce. Windows zwiększył rozdzielczość ekranu do 96dpi, aby lepiej wyświetlać czcionki, ale w rezultacie obraz na ekranie nie pasuje już do drukowanych rozmiarów.

W przypadku projektu internetowego nie przejmuj się DPI, jeśli obraz nie jest przeznaczony do druku; 72dpi, 96dpi, nawet 1200dpi powinny wyświetlać to samo.