Sobes.tech
Senior

Hoe wordt een afbeelding opgeslagen in PostgreSQL — is het een codering of een reeks cijfers? Hoe sla je een afbeelding op als tekst?

sobes.tech AI

Antwoord van AI

In PostgreSQL wordt een afbeelding gewoonlijk opgeslagen als binaire gegevens in een bytea-veld of in een groot object (LOB). Dit is geen codering in de gebruikelijke zin, maar gewoon een sequentie van bytes die de inhoud van het bestand vertegenwoordigen.

Om de afbeelding als tekst op te slaan, kan deze worden gecodeerd in Base64, wat de binaire gegevens omzet in een ASCII-string die in een tekstveld kan worden opgeslagen. Deze methode vergroot de gegevensgrootte echter met ongeveer 33%.

Voorbeeld van het opslaan van een afbeelding 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 de database kan deze string worden opgeslagen in een veld van het type text of varchar. Indien nodig, kan deze weer worden gedecodeerd naar het binaire formaat.