Ottieni la risoluzione di un'immagine jpeg usando C# e l'ambiente .NET?


6

I nostri clienti caricheranno le immagini da stampare sui loro documenti e ci è stato chiesto di trovare un modo per ottenere la risoluzione dell'immagine al fine di avvisarli se l'immagine ha una risoluzione troppo bassa e sembrerà pixellata nel prodotto finale

Se si tratta di essa potremmo anche andare con le dimensioni se qualcuno sa come ottenere quelli ma la risoluzione sarebbe preferito

Grazie

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

Dipende da ciò che stai cercando ... se vuoi il DPI dell'immagine, allora stai cercando la risoluzione orizzontale che è il DPI dell'immagine.

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

Se si vuole capire quanto è grande l'immagine è allora avete bisogno di calcolare le dimensioni dell'immagine, che è:

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

Questo vi darà l'altezza del documento e la larghezza in pollici che si potrebbe quindi confrontare con la dimensione minima necessaria.

  0

+1. Brian, mi hai salvato da ore e ore di ricerche, grande intuizione! 13 mag. 102010-05-13 21:41:14


3

DPI hanno senso solo quando si stampa. 72 dpi è lo standard Mac e 96 dpi è lo standard di Windows. La risoluzione dello schermo prende in considerazione solo i pixel, quindi un jpeg a 72 dpi 800x600 ha la stessa risoluzione dello schermo rispetto a un pixel di 800 dpi x 96 dpi.

Torna agli anni '80, Mac utilizzava risoluzione schermo/stampa di 72 dpi per adattarsi allo schermo/dimensione di stampa, quindi quando si aveva un'immagine sullo schermo a 1: 1, corrisponde alla stessa dimensione sulla stampante. Windows ha aumentato la risoluzione dello schermo a 96 dpi per avere una migliore visualizzazione dei caratteri .. ma di conseguenza, l'immagine dello schermo non si adatta più alle dimensioni stampate.

Quindi, per il progetto Web, non disturbare con DPI se l'immagine non è per la stampa; 72 dpi, 96 dpi, anche 1200 dpi dovrebbero mostrare lo stesso.