Senior
Jak je v PostgreSQL uložena obrázek — je to nějaké kódování nebo sada čísel? Jak uložit obrázek jako text?
sobes.tech AI
Odpověď od AI
V PostgreSQL je obrázek obvykle uložen jako binární data v poli typu bytea nebo v objektu velkého objemu (LOB). To není kódování ve smyslu obvyklém, ale jednoduše posloupnost bajtů představujících obsah souboru.
Pro uložení obrázku jako text jej lze zakódovat do Base64, což převede binární data na ASCII řetězec, který lze uložit do textového pole. Tento způsob však zvětšuje velikost dat přibližně o 33 %.
Příklad uložení obrázku v Base64 v 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)
}
V databázi lze tento řetězec uložit do pole typu text nebo varchar. Pokud je potřeba, lze jej zpět dekódovat do binárního formátu.