Sobes.tech
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.