Comment puis-je écrire une application qui recadrera des images en C #?
c#
image-processing
sandy101
la source
la source
DrawImageUnscaledAndClipped
plus efficace qu'à desDrawImage
fins de culture?Consultez ce lien: http://www.switchonthecode.com/tutorials/csharp-tutorial-image-editing-saving-cropping-and-resizing
la source
Plus simple que la réponse acceptée est la suivante:
et il évite le risque d'exception " Out of memory " de la réponse la plus simple.
Notez que
Bitmap
etGraphics
sontIDisposable
donc lesusing
clauses.EDIT : Je trouve que c'est bien avec les PNG enregistrés par
Bitmap.Save
ou Paint.exe, mais échoue avec les PNG enregistrés par exemple par Paint Shop Pro 6 - le contenu est déplacé. L'addition deGraphicsUnit.Pixel
donne un mauvais résultat différent. Peut-être que ces fichiers PNG défaillants sont défectueux.la source
Bitmap
etGraphics
sontIDisposable
- ajouter uneusing
clausecela peut être nécessaire même si vous implémentez la meilleure réponse ici, surtout si votre image est vraiment géniale et que les résolutions ne sont pas exactement 96,0
Mon exemple de test:
la source
C'est assez simple:
Bitmap
objet avec la taille recadrée.Graphics.FromImage
pour créer unGraphics
objet pour le nouveau bitmap.DrawImage
méthode pour dessiner l'image sur le bitmap avec une coordonnée X et Y négative.la source
Voici un exemple simple sur le recadrage d'une image
la source
Si vous utilisez AForge.NET :
la source
Je cherchais une fonction facile et RAPIDE sans bibliothèque supplémentaire pour faire le travail. J'ai essayé la solution Nicks , mais j'avais besoin de 29,4 secondes pour "extraire" 1195 images d'un fichier atlas. Alors plus tard, j'ai réussi de cette façon et j'ai eu besoin de 2,43 secondes pour faire le même travail. Ce sera peut-être utile.
la source
Le recadrage d'une image est très simple en C #. Cependant, faire les choses comment allez-vous gérer le recadrage de votre image sera un peu plus difficile.
L'exemple ci-dessous montre comment recadrer une image en C #.
la source
Il existe un wrapper C # pour ce qui est open source, hébergé sur Codeplex appelé Web Image Cropping
Enregistrer le contrôle
<%@ Register Assembly="CS.Web.UI.CropImage" Namespace="CS.Web.UI" TagPrefix="cs" %>
Redimensionnement
Recadrage dans le code derrière - Appelez la méthode Crop lorsque le bouton est cliqué par exemple;
wci1.Crop(Server.MapPath("images/sample1.jpg"));
la source
En supposant que vous vouliez prendre un fichier image (JPEG, BMP, TIFF, etc.) et le recadrer puis l'enregistrer en tant que fichier image plus petit, je suggère d'utiliser un outil tiers doté d'une API .NET. Voici quelques-uns des plus populaires que j'aime:
Kit de développement
logiciel LeadTools Accusoft Pegasus Snowbound Imaging
la source
Seul cet exemple fonctionne sans problème:
la source
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 en utilisant C #. J'ai trouvé cette solution sur cette page
la source
ici ça marche démo sur github
https://github.com/SystematixIndore/Crop-SaveImageInCSharp
Logique de code C # pour le téléchargement et le recadrage.
la source