Senior
Come viene memorizzata un'immagine in PostgreSQL — è una codifica o una serie di numeri? Come memorizzare un'immagine come testo?
sobes.tech AI
Risposta dell'AI
In PostgreSQL, un'immagine viene solitamente memorizzata come dati binari in un campo di tipo bytea o in un oggetto di grandi dimensioni (LOB). Questo non è un'encoding nel senso tradizionale, ma semplicemente una sequenza di byte che rappresentano il contenuto del file.
Per memorizzare l'immagine come testo, può essere codificata in Base64, che converte i dati binari in una stringa ASCII che può essere salvata in un campo di testo. Tuttavia, questo metodo aumenta la dimensione dei dati di circa il 33%.
Esempio di memorizzazione di un'immagine 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)
}
Nel database, questa stringa può essere salvata in un campo di tipo text o varchar. Se necessario, può essere decodificata di nuovo nel formato binario.