Comment recadrer une image à l'aide de C#?
Comment puis-je écrire une application qui vous permettra de recadrer les images en C#?
Vous devez vous connecter pour publier un commentaire.
Comment puis-je écrire une application qui vous permettra de recadrer les images en C#?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
Graphiques.DrawImage
pour dessiner une image recadrée sur l'objet graphique à partir d'une image.DrawImageUnscaledAndClipped
plus efficace queDrawImage
pour le recadrage but?Consultez ce lien: http://www.switchonthecode.com/tutorials/csharp-tutorial-image-editing-saving-cropping-and-resizing
Plus simple que l'on a accepté la réponse est celle-ci:
et ça évite les "de mémoire" exception des risques de la réponse la plus simple.
MODIFIER: je trouve que c'est bien avec les Png sauvé par
Bitmap.Save
ou Paint.exe, mais échoue avec les Png sauvé par exemple Paint Shop Pro 6 - le contenu est déplacé. Plus deGraphicsUnit.Pixel
donne un autre mauvais résultat. Peut-être juste à ces échec Png sont défectueux.Bitmap
etGraphics
sontIDisposable
- ajouter unusing
clausece sera peut-être nécessaire de le faire même si vous mettez en œuvre les meilleures réponse ici
surtout si votre image est belle et les résolutions ne sont pas exactement à 96,0
Mon test exemple:
C'est assez facile:
Bitmap
objet avec le recadrée taille.Graphics.FromImage
pour créer unGraphics
de l'objet pour la nouvelle image.DrawImage
méthode pour dessiner l'image sur l'image bitmap avec un négatif coordonnées X et Y.Voici un exemple simple sur le cadrage d'une image
Si vous utilisez AForge.NET:
Il y a un C# wrapper pour ce qui est de l'open source, hébergé sur Codeplex appelé Web Recadrage De L'Image
Inscrire le contrôle
<%@ Register Assembly="CS.Web.UI.CropImage" Namespace="CS.Web.UI" TagPrefix="cs" %>
Redimensionnement
Recadrage dans le code derrière - Appel de la Récolte de la méthode lorsque le bouton cliqué par exemple;
wci1.Crop(Server.MapPath("images/sample1.jpg"));
Je cherchais un moyen facile et RAPIDE de la fonction avec aucune autre bibliothèque pour faire le travail. J'ai essayé Les entailles solution, mais j'avais besoin de 29,4 sec "extrait de" 1195 images d'un atlas de fichier. Plus tard, j'ai réussi de cette façon et avait besoin de 2,43 sec pour faire le même travail. Peut-être que ce sera utile.
En supposant que vous dire que vous voulez prendre un fichier image (JPEG, BMP, TIFF, etc) et recadrer ensuite l'enregistrer comme une image plus petite de fichier, je vous suggère d'utiliser un outil tiers qui a un .NET DE L'API. Voici quelques-uns des plus populaires comme je les aime:
LeadTools
Accusoft Pegasus
Bloqués par la neige Imaging SDK
Rognage d'une image est très facile en C#. Cependant, en faisant les choses, comment allez-vous gérer le recadrage de l'image sera un peu plus difficile.
Exemple ci-dessous est une façon de recadrer une image en C#.
Seulement cet exemple fonctionne sans problème:
C'est une autre façon. Dans mon cas, j'ai:
À l'intérieur du bouton, j'ai ce code:
Je l'ai essayé dans Visual studio 2012 à l'aide de C#. J'ai trouvé cette solution à partir de ce page
ici, c'est le travail de démonstration sur github
https://github.com/SystematixIndore/Crop-SaveImageInCSharp
De code C# de la logique pour la télécharger et de la culture.