Je veux vérifier si la photo est adapté pour imprimer ou ne pas utiliser mon application.Comment puis-je faire cela? Je ne sais pas beaucoup de la qualité de la photo? Est-ce que la résolution de chaque photo est la même ou non?Comment puis-je vérifier la qualité de l'image dans un programme en utilisant C#?
Répondre
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);
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();
}
}
}
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
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
"votre résolution disponible dans l'image" est-ce d'obtenir par img.HorizontalResolution et img.VerticalResolution? – Dinu
- 1. Comment vérifier avec C# où un programme est installé
- 2. Comment vérifier si un fichier existe sur un serveur en utilisant C# et la classe WebClient
- 3. Comment créer un programme d'installation dans un langage différent en utilisant Visual C++ (programmation de fenêtre);
- 4. Compilation du programme dans un autre programme en utilisant gcc
- 5. Comment vérifier l'existence d'un élément dans un fichier XML en utilisant XML LINQ en C#
- 6. Comment exécuter un programme en utilisant Maven?
- 7. Comment créer un programme en utilisant NSURLConnection?
- 8. Comment vérifier si un programme se termine?
- 9. Comment profiler un C-Programme dans une boucle de script Shell, en utilisant Shark sur Mac?
- 10. Comment écrire un programme d'écho en C?
- 11. Y at-il des outils pour vérifier la qualité html?
- 12. arrête un package DTS par programme (en utilisant C#)
- 13. C# Comment puis-je vérifier un élément sélectionné dans une listbox en utilisant du code?
- 14. Programme pour vérifier un Palindrome
- 15. comment vérifier si OpenOffice est installé en utilisant C# programatically
- 16. Comment passer un paramètre à un programme de console c en utilisant Xcode?
- 17. Ecrivez un programme pour vérifier si un caractère forme un caractère d'échappement en C
- 18. Comment vérifier avec un programme dans un autre langage de programmation (C, C++, etc.) si Java est installé et où
- 19. Comment convertir un fichier .wmv de haute qualité en utilisant ffmpeg
- 20. Comment vérifier si un fichier existe dans le lecteur C: \ en utilisant VC++?
- 21. C#: Vérifier la date réelle en ligne?
- 22. Comment vérifier si un processus a des privilèges élevés dans Windows 7 en utilisant C++ natif?
- 23. vérifier un domaine en utilisant php
- 24. Comment lier le programme C++ avec Boost en utilisant CMake
- 25. Comment se connecter à VSS en utilisant C# par programme?
- 26. Atteindre la qualité d'impression MS Word en C#
- 27. Comment utiliser Redis dans un programme C++?
- 28. Comment vérifier si l'URL actuelle a un nom de sous-domaine en utilisant C#?
- 29. Comment vérifier si le fichier tlb est enregistré dans le registre en utilisant C++?
- 30. C programme qui imprime un autre programme C en japonais
you.With Remercier quelle valeur dois-je comparer la résolution de l'image? – Dinu