2010-03-28 2 views

Répondre

0

Il y a beaucoup de facteurs qui différencieront une image qui est « de bonne qualité » et « de mauvaise qualité »

wikipedia has a short list of those factors

La plupart d'entre eux sont plutôt difficiles à vérifier programatically et impliquer complexe algorithmes d'imagerie. Vérification de la résolution est facile cependant, si c'est le seul critère entre une bonne et une mauvaise image.

This simple code tells you how to do it

Je pense que le code le plus fondamental pour obtenir la résolution est ce

Bitmap bmp = new Bitmap("winter.jpg"); 

    Console.WriteLine("Image resolution: " + bmp.HorizontalResolution + " DPI"); 
    Console.WriteLine("Image resolution: " + bmp.VerticalResolution + " DPI"); 
    Console.WriteLine("Image Width: " + bmp.Width); 
    Console.WriteLine("Image Height: " + bmp.Height); 
+0

you.With Remercier quelle valeur dois-je comparer la résolution de l'image? – Dinu

3

Je pense que le seul facteur qualité d'impression que vous pouvez vérifier avec certitude (parce que les autres facteurs sont subjectifs) , est la résolution de l'image par rapport à la taille d'impression prévue. Si vous avez d'autres exigences tangibles, comme l'image doit être de couleur, pas noir et blanc, vous pouvez vérifier cela aussi. Mais essayer d'identifier si une image est trop floue, faible contraste, etc., sera probablement une poursuite infructueuse, car on ne sait jamais si l'image était destinée à être comme ça ou non. Une règle générale est que vous devriez avoir au moins 240 points par pouce lors de l'impression, et 300 est encore mieux. Bien sûr, avec des imprimantes de qualité, une résolution plus élevée que cela peut donner de meilleurs résultats, et si vous imprimez des détails très élevés, comme du texte fin, vous voudrez peut-être aller à 600 dpi et plus. Donc, pour imprimer une image 8 "x 10" en utilisant le minimum de 240 dpi, vous voulez une image d'au moins 1920 x 2400 pixels (soit un total de 4,608,000 pixels, soit environ 4,5 mégapixels).

Si vous décidez que vous voulez au moins 300 ppp en imprimant un 8 "x 10", alors vous voulez une image avec au moins 2400 x 3000 pixels, ce qui est d'environ 7 mégapixels.

Augmentation jusqu'à 600 dpi? Vous aurez besoin d'une image de 28 mégapixels dans ce cas.

Exemple:

using System; 
using System.Drawing; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      int minimumPrintDpi = 240; 
      int targetPrintWidthInches = 8; 
      int targetPrintHeightInches = 10; 
      int minimumImageWidth = targetPrintWidthInches * minimumPrintDpi; 
      int minimumImageHeight = targetPrintHeightInches * minimumPrintDpi; 

      var img = Image.FromFile(@"C:\temp\CaptainKangaroo.jpg"); 

      Console.WriteLine(string.Format("Minimum DPI for printing: {0}", minimumPrintDpi)); 
      Console.WriteLine(string.Format("Target print size: width:{0}\" x height:{1}\"", targetPrintWidthInches, targetPrintHeightInches)); 
      Console.WriteLine(string.Format("Minimum image horizontal resolution: {0}", minimumImageWidth)); 
      Console.WriteLine(string.Format("Minimum image vertical resolution: {0}", minimumImageHeight)); 
      Console.WriteLine(string.Format("Actual Image horizontal resolution: {0}", img.Width)); 
      Console.WriteLine(string.Format("Actual Image vertical resolution: {0}", img.Height)); 
      Console.WriteLine(string.Format("Actual image size in megapixels: {0}", ((float)img.Height * img.Width)/1000000)); 
      Console.WriteLine(string.Format("Image resolution sufficient? {0}", img.Width >= minimumImageWidth && img.Height >= minimumImageHeight)); 
      Console.WriteLine(string.Format("Maximum recommended print size for this image: width:{0}\" x height:{1}\"", (float)img.Width/minimumPrintDpi, (float)img.Height/minimumPrintDpi)); 

      Console.ReadKey(); 
     } 
    } 
} 
+0

Comment puis-je vérifier si l'image a 300DPI? Quand je reçois img.HorizontalResolution et img.VerticalResolution, il leur donne 96 et 96. Qu'est-ce que cela signifie? – Dinu

+0

Utilisez les propriétés Largeur et Hauteur comme indiqué ci-dessus, et voyez s'il y a assez de pixels pour la taille que vous voulez imprimer en multipliant le nombre de pouces par 240 et en comparant avec la résolution disponible dans l'image. – RedFilter

+0

"votre résolution disponible dans l'image" est-ce d'obtenir par img.HorizontalResolution et img.VerticalResolution? – Dinu

Questions connexes