Hier ist mein Code:
protected void SaveMyImage_Click(object sender, EventArgs e)
{
string imageUrl = Hidden1.Value;
string saveLocation = Server.MapPath("~/PictureUploads/whatever2.png") ;
HttpWebRequest imageRequest = (HttpWebRequest)WebRequest.Create(imageUrl);
WebResponse imageResponse = imageRequest.GetResponse();
Stream responseStream = imageResponse.GetResponseStream();
using (BinaryReader br = new BinaryReader(responseStream))
{
imageBytes = br.ReadBytes(500000);
br.Close();
}
responseStream.Close();
imageResponse.Close();
FileStream fs = new FileStream(saveLocation, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
try
{
bw.Write(imageBytes);
}
finally
{
fs.Close();
bw.Close();
}
}
}
Die oberste imageUrl-Deklaration nimmt eine Base64-Bildzeichenfolge auf, und ich möchte sie in ein Bild konvertieren. Ich denke, mein Code funktioniert nur für Bilder wie "www.mysite.com/test.jpg", nicht für eine Base64-Zeichenfolge. Hat jemand ein paar Vorschläge? Vielen Dank!
c#
asp.net
image-processing
base64
anthonypliu
quelle
quelle
Sie können Base64 direkt in einer Datei speichern:
quelle
Image.Save()
) ausprobiert . Beide funktionieren, aber aus irgendeinem Grund verkleinert diese Version meine Dateigröße um 30%, ohne dass sich die Bildqualität ändertHier ist, was ich am Ende gemacht habe.
quelle
A generic error occurred in GDI+
beschriebenen Fehler . Das Verschieben des Inneren des using-Blocks hat es für mich behoben.image.Save
Ich würde über Bitmap vorschlagen:
quelle
In meinem Fall funktioniert es nur mit zwei Codezeilen. Testen Sie den folgenden C # -Code:
Das ist es. Bitte stimmen Sie ab, wenn Sie wirklich feststellen, dass diese Lösung für Sie funktioniert. Danke im Voraus.
quelle
dirPath
ein@
Zeichen vor dem String i..e haben muss.@"C:\myfolder\"
oder Sie müssen den Backslashes in der Zeichenfolge entkommen, dh"C:\\myfolder\\"
Hier ist Arbeitscode zum Konvertieren eines Bildes von einer base64-Zeichenfolge in ein
Image
Objekt und zum Speichern in einem Ordner mit einem eindeutigen Dateinamen:quelle
In einem ähnlichen Szenario funktionierte für mich Folgendes:
ImageTagId
ist die ID des ASP-Image-Tags.quelle
Wenn Sie eine Zeichenfolge von Binärdaten haben, die Base64-codiert ist, sollten Sie in der Lage sein, Folgendes zu tun:
Sie sollten in der Lage sein, das resultierende Array in eine Datei zu schreiben.
quelle
quelle