Ich lade eine Datei (Bild) mit <asp:FileUpload />
hoch und verwende im Codebehind UploadedFile.SaveAs("C://Path...")
, um das Bild auf dem Server zu speichern.
Dies ist mein vollständiger Code:
%Vor%Das Problem ist, dass es die Qualität zu reduzieren scheint. Hier einige Beispiele: Das linke Bild ist das Bild, das ich hochladen möchte und das rechte ist das Bild, das auf den Server hochgeladen wurde.
Das hat dank Ashigore funktioniert:
%Vor%Ich habe die Bytes in einer Variablen gespeichert und die rohen Bytes als Image-Datei auf dem Server gespeichert.
Ich vermute, Sie arbeiten mit einem Image-Objekt, das die jpg-Daten in rohe Bitmap-Daten umwandelt und beim Speichern neu codiert. Sie müssen mit rohen Bytes nur so arbeiten, dass sie niemals in ein Image-Objekt konvertiert werden, um die ursprüngliche Qualität beizubehalten.
Können Sie die Datei, die als Ergebnis dieser Operation gespeichert wurde, direkt auf der Festplatte betrachten, ohne die Website zu benutzen? Vergleiche es mit dem Original - Gibt es einen Unterschied? Sie können das Bild auf irgendeine Weise verändern, wenn Sie es anzeigen.
Die Alternative besteht darin, FileUploadControl.OpenFile()
zu verwenden, um den Stream abzurufen und manuell auf die Festplatte zu schreiben.