Wie kann ich eine Anwendung schreiben, die Bilder in C # zuschneidet?
c#
image-processing
sandig101
quelle
quelle
DrawImageUnscaledAndClipped
effizienter alsDrawImage
zum Zuschneiden?Schauen Sie sich diesen Link an: http://www.switchonthecode.com/tutorials/csharp-tutorial-image-editing-saving-cropping-and-resizing
quelle
Einfacher als die akzeptierte Antwort ist dies:
und es vermeidet das Ausnahmerisiko "Nicht genügend Speicher " für die einfachste Antwort.
Beachten Sie, dass
Bitmap
undGraphics
sindIDisposable
damit dieusing
Klauseln.BEARBEITEN : Ich finde, dass dies bei PNGs, die von
Bitmap.Save
oder Paint.exe gespeichert wurden, in Ordnung ist, aber bei PNGs, die von z. B. Paint Shop Pro 6 gespeichert wurden, fehlschlägt - der Inhalt wird verschoben. Das Hinzufügen vonGraphicsUnit.Pixel
ergibt ein anderes falsches Ergebnis. Vielleicht sind nur diese fehlerhaften PNGs fehlerhaft.quelle
Bitmap
undGraphics
sindIDisposable
- eineusing
Klausel hinzufügenDies kann auch dann erforderlich sein, wenn Sie hier die beste Antwort implementieren, insbesondere wenn Ihr Bild wirklich gut ist und die Auflösungen nicht genau 96,0 betragen
Mein Testbeispiel:
quelle
Es ist sehr leicht:
Bitmap
Objekt mit der zugeschnittenen Größe.Graphics.FromImage
diese Option , um einGraphics
Objekt für die neue Bitmap zu erstellen .DrawImage
Methode, um das Bild mit einer negativen X- und Y-Koordinate auf die Bitmap zu zeichnen.quelle
Hier ist ein einfaches Beispiel zum Zuschneiden eines Bildes
quelle
Wenn Sie AForge.NET verwenden :
quelle
Ich suchte nach einer einfachen und SCHNELLEN Funktion ohne zusätzliche Bibliothek, um die Arbeit zu erledigen. Ich habe die Nicks-Lösung ausprobiert , aber ich brauchte 29,4 Sekunden, um 1195 Bilder einer Atlas-Datei zu "extrahieren". Also schaffte ich es später auf diese Weise und brauchte 2,43 Sekunden, um den gleichen Job zu machen. Vielleicht ist das hilfreich.
quelle
Das Zuschneiden eines Bildes ist in C # sehr einfach. Es wird jedoch etwas schwieriger sein, die Dinge zu tun, wie Sie das Zuschneiden Ihres Bildes verwalten.
Im folgenden Beispiel sehen Sie, wie Sie ein Bild in C # zuschneiden.
quelle
Es gibt einen C # -Wrapper für Open Source, der auf Codeplex gehostet wird und Web Image Cropping heißt
Registrieren Sie die Steuerung
<%@ Register Assembly="CS.Web.UI.CropImage" Namespace="CS.Web.UI" TagPrefix="cs" %>
Größenänderung
Code dahinter zuschneiden - Ruft die Crop-Methode auf, wenn Sie beispielsweise auf die Schaltfläche klicken.
wci1.Crop(Server.MapPath("images/sample1.jpg"));
quelle
Angenommen, Sie möchten eine Bilddatei (JPEG, BMP, TIFF usw.) aufnehmen und zuschneiden und dann als kleinere Bilddatei speichern, empfehle ich die Verwendung eines Drittanbieter-Tools mit einer .NET-API. Hier sind einige der beliebtesten, die ich mag:
LeadTools
Accusoft Pegasus Snowbound Imaging SDK
quelle
Nur dieses Beispiel funktioniert ohne Probleme:
quelle
Dies ist ein anderer Weg. In meinem Fall habe ich:
Innerhalb der Schaltfläche habe ich diesen Code:
Ich habe es in Visual Studio 2012 mit C # versucht. Ich habe diese Lösung auf dieser Seite gefunden
quelle
Hier arbeitet es Demo auf Github
https://github.com/SystematixIndore/Crop-SaveImageInCSharp
C # -Code-Logik zum Hochladen und Zuschneiden.
quelle