Senior
Wie wird ein Bild in PostgreSQL gespeichert — ist es eine Kodierung oder eine Reihe von Zahlen? Wie speichert man ein Bild als Text?
sobes.tech KI
Antwort von AI
In PostgreSQL wird ein Bild in der Regel als Binärdaten in einem bytea-Feld oder in einem Large Object (LOB) gespeichert. Dies ist keine Kodierung im üblichen Sinne, sondern einfach eine Sequenz von Bytes, die den Inhalt der Datei darstellen.
Um das Bild als Text zu speichern, kann es in Base64 codiert werden – dies wandelt die Binärdaten in eine ASCII-Zeichenkette um, die in einem Textfeld gespeichert werden kann. Diese Methode erhöht jedoch die Datenmenge um etwa 33 %.
Beispiel für die Speicherung eines Bildes in Base64 in Go:
import (
"encoding/base64"
"io/ioutil"
"log"
)
func encodeImageToBase64(path string) string {
data, err := ioutil.ReadFile(path)
if err != nil {
log.Fatal(err)
}
return base64.StdEncoding.EncodeToString(data)
}
In der Datenbank kann diese Zeichenkette in einem text- oder varchar-Feld gespeichert werden. Bei Bedarf kann sie wieder in das Binärformat decodiert werden.