Wie konvertiert man ein Bild von einem Pfad auf dem Computer des Benutzers in eine base64-Zeichenfolge in C #?
Zum Beispiel habe ich den Pfad zum Bild (im Format C:/image/1.gif
) und möchte einen Daten-URI, data:image/gif;base64,/9j/4AAQSkZJRgABAgEAYABgAAD..
der das zurückgegebene 1.gif
Bild darstellt.
Antworten:
Versuche dies
quelle
image.RawFormat
.RawFormat
ist kein Bildformatspezifizierer; Es ist eine Eigenschaft desimage
Objekts, die zurückgibt, in welchem Format sich das Bild befand, als es aus einer Datei gelesen wurde. In diesem Fall bedeutet dies, dass das GIF-Format zurückgegeben wird. Es ändert sich also nichts, außer dass Sie anstelle der Bytes der eigentlichen Originaldatei die Bytes des Bildes haben, die vom .Net-Framework erneut in gif gespeichert wurden.Holen Sie sich die Byte-Array (
byte[]
) -Darstellung des Bildes und verwenden Sie dannConvert.ToBase64String()
st. so was:So konvertieren Sie ein base4-Image zurück in ein System.Drawing.Image:
quelle
System.Drawing.Image
kannst du st verwenden. so:var img = Image.FromStream(new MemoryStream(Convert.FromBase64String(base64String)));
Da die meisten von uns Oneliner mögen:
Wenn Sie es als Base64-Byte-Array benötigen:
quelle
Obwohl die kompliziertere Antwort in Ordnung ist, finde ich, dass dies viel besser ist
Es ist einfach, Sie müssen nicht erneut speichern und verschiedene Formate verarbeiten
quelle
Dies ist die Klasse, die ich zu diesem Zweck geschrieben habe:
quelle
Sie können den Pfad des Bildes einfach übergeben, um die base64-Zeichenfolge abzurufen
Hoffe das wird helfen.
quelle
_image.RawFormat
), macht die Daten jedoch alsimage/jpg
Sie können den
Server.Map
Pfad verwenden, um einen relativen Pfad anzugeben, und dann können Sie entweder ein Bild mithilfe derbase64
Konvertierung erstellen oder einfach einebase64
Zeichenfolge hinzufügenimage src
.quelle
Auf diese Weise ist es einfacher, wenn Sie das Bild und dann das Format übergeben.
quelle
Der folgende Code funktioniert für mich:
quelle
Basierend auf der am besten bewerteten Antwort, aktualisiert für C # 8. Das Folgende kann sofort verwendet werden.
System.Drawing
Vorher explizit hinzugefügt,Image
da diese Klasse möglicherweise standardmäßig aus einem anderen Namespace verwendet wird.quelle
Sie können es so konvertieren
Ausgabe
quelle
Sowas in der Art
quelle
C#
Tag auf der Frage bemerkt ?