Obtenir la résolution d'une image jpeg en utilisant C # et l'environnement .NET?

StackOverflow https://stackoverflow.com/questions/123838

  •  02-07-2019
  •  | 
  •  

Question

Nos clients téléchargeront des images à imprimer sur leurs documents et nous avons été invités à trouver un moyen d'obtenir la résolution de l'image afin de les avertir si l'image présente une résolution trop basse et aura l'air pixellisé dans le produit final

Si cela se produit, nous pourrions aussi choisir les dimensions si quelqu'un sait comment les obtenir, mais la résolution serait préférable

Merci

Était-ce utile?

La solution

System.Drawing.Image

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

Autres conseils

Cela dépend de ce que vous recherchez. Si vous souhaitez connaître le DPI de l'image, recherchez la résolution horizontale qui correspond au DPI de l'image.

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

Si vous voulez savoir quelle est la taille de l'image, vous devez calculer les mesures de celle-ci:

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

Ceci vous donnera la hauteur et la largeur du document en pouces que vous pourrez ensuite comparer à la taille minimale requise.

DPI prend sens lors de l'impression uniquement. 72 dpi est la norme Mac et 96 dpi est la norme Windows. La résolution de l’écran ne prenant en compte que les pixels, un jpeg de 72dpi et 800x600 correspond à la même résolution d’écran qu’un de 96dpi de 800x600 pixels.

De retour aux années 80, Mac utilisait une résolution d’écran / d’impression de 72 dpi pour s’adapter à la taille de l’écran / d’impression. Ainsi, lorsque vous avez une image à l’écran au format 1: 1, elle correspond à la même taille sur l’imprimante. Windows a augmenté la résolution de l'écran à 96 ppp pour un meilleur affichage des polices. En conséquence, l'image à l'écran ne correspond plus à la taille imprimée.

Donc, pour un projet Web, ne vous embêtez pas avec le DPI si l'image n'est pas à imprimer; 72 dpi, 96 dpi, même 1200 dpi devraient afficher la même chose.

Image image = Image.FromFile( [file] );
GraphicsUnit unit = GraphicsUnit.Point;
RectangleF rect = image.GetBounds( ref unit );
float hres = image.HorizontalResolution;
float vres = image.VerticalResolution;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top