Domanda

I nostri clienti caricheranno 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 guarderà pixellato nel prodotto finale

Se si arriva a ciò, potremmo anche andare con le dimensioni se qualcuno sa come ottenerli ma la risoluzione sarebbe preferita

Grazie

È stato utile?

Soluzione

System.Drawing.Image

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

Altri suggerimenti

Dipende da cosa 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 vuoi capire quanto è grande l'immagine, allora devi calcolare le misure dell'immagine che è:

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

Questo ti darà l'altezza e la larghezza del documento in pollici che potresti confrontare con le dimensioni minime necessarie.

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

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

Quindi, per i progetti web, non preoccuparti di DPI se l'immagine non è per la stampa; 72 dpi, 96 dpi, anche 1200 dpi dovrebbero visualizzare lo stesso.

Image image = Image.FromFile( [file] );
GraphicsUnit unit = GraphicsUnit.Point;
RectangleF rect = image.GetBounds( ref unit );
float hres = image.HorizontalResolution;
float vres = image.VerticalResolution;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top