Wie konvertierst du eine HttpPostedFileBase in ein Image?
Ich bin mit ASP.NET MVC und ich habe eine Aktion, die die Datei hochlädt. Die Datei wird hochgeladen, richtig. Aber ich möchte die Breite und Höhe des Bildes. Ich glaube, ich brauche zum konvertieren der HttpPostedFileBase
zu Image
ersten und dann gehen Sie. Wie mache ich das?
Bitte lassen Sie mich wissen, wenn es einen anderen besseren Weg, um die Breite und Höhe des Bildes.
InformationsquelleAutor der Frage Abdulsattar Mohammed | 2009-07-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Benutze ich
"Bild".FromStream
wie folgt:Beachten Sie, dass die zurückgegebenen
Image
istIDisposable
.Benötigen Sie einen Verweis, um
System.Drawing.dll
für diese zu arbeiten, undImage
ist in derSystem.Drawing
namespace.Die Bildgröße zu ändern
Ich bin mir nicht sicher, was Sie zu tun versuchen, aber wenn Sie geschehen, zu machen, miniaturen oder ähnliches, die Sie interessieren können, etwas zu tun, wie...
wo
clipRectangle
ist das Rechteck, das ursprüngliche Bild, das Sie skalieren möchten in die neue bitmap (Sie müssen manuell befassen sich mit Aspekt-Verhältnis). Der catch-block ist typischIDisposable
Verwendung in einem Konstruktor; Sie pflegen das Miteigentum an der neuenIDisposable
Objekt, bis es zurückgegeben wird (Sie können doc, mit code-Kommentare).Speichern als Jpeg
Leider die Standard - "speichern als jpeg" encoder nicht auszusetzen, Qualitätskontrollen, und wählt einen erschreckend niedrigen Standard-Qualität.
Können Sie manuell wählen Sie den encoder, aber, und Sie dann weitergeben können beliebige Parameter:
InformationsquelleAutor der Antwort Eamon Nerbonne
Wenn Sie sicher sind, dass die Quelle Bild ist und nicht bearbeitet werden müssen, können Sie es leicht tun, wie beschrieben, hier
Sichern Sie die Datei ein Bild ist, fügen Sie die javascript-Validierung, um die Ansicht durch hinzufügen von accept-Attribut den MIME-Typ für input-tag
- und jQuery-Validierung Skript
Die ganze Lösung gefunden werden kann hier
InformationsquelleAutor der Antwort Andree643