Ich verwende ein ASP.NET-Steuerelement zum Hochladen von Dateien, verkleinere dann ein Bild und speichert das neue Bild in einem neuen Bitmap. Hier ist der Code, den ich bisher habe:Hilfe beim Abrufen von Daten aus skalierten Bildern
protected void ResizeImage()
{
Bitmap originalBMP = new Bitmap(FileUpload1.FileContent);
//Calculate new image dimensions
int origWidth = originalBMP.Width;
int origHeight = originalBMP.Height;
int sngRatio = origWidth/origHeight;
int newWidth = 100;
int newHeight = newWidth/sngRatio;
Bitmap newBMP = new Bitmap(originalBMP, newWidth, newHeight);
}
ich direkt zu Amazon S3 hochladen und ich brauche einige Daten zu seiner Upload-Methode übergeben. Wie erhalte ich die folgenden Informationen von meinem neuen Bitmap, die ich mit dem Fileupload verwendet haben ?:
FileUpload1.FileBytes
FileUpload1.FileBytes.Length
Muss ich meine neue Bitmap in einen Stream speichern, so dass ich ein Array von Bytes bekommen?
Mit dem Bitmap-Konstruktor erhalten Sie extrem schlechte Bildqualität mit vielen Artefakten. Außerdem hoffe ich, dass Sie die using() - Klausel für beide Bitmap-Instanzen verwenden, da der Code den Server bei 20-100 Anfragen zum Absturz bringt. Ich schlage vor, dass Sie stattdessen [eine Bibliothek verwenden, die für die server-sichere Bildgrößenanpassung entwickelt wurde] (http://imageresizing.net), es ist einfacher als die [29 Fallen auf eigene Faust] zu umgehen (http://nathanaeljones.com/163/ 20-Bild-Größenänderung-Fallstricke /). –