Sobes.tech
Senior

Kako se u PostgreSQL čuva slika — da li je to neka kodacija ili skup brojeva? Kako sačuvati sliku u obliku teksta?

sobes.tech АИ

Одговор од АИ

U PostgreSQL, slika se obično čuva u binarnom obliku u polju tipa bytea ili u velikom objektu (LOB). To nije kodiranje u uobičajenom smislu, već jednostavno niz bajtova koji predstavljaju sadržaj fajla.

Da biste sačuvali sliku kao tekst, možete je kodirati u Base64, što pretvara binarne podatke u ASCII niz koji se može sačuvati u tekstualnom polju. Međutim, ovaj metod povećava veličinu podataka za otprilike 33%.

Primer čuvanja slike u Base64 u 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)
}

U bazi podataka, ovaj niz se može sačuvati u polju tipa text ili varchar. Ako je potrebno, može se dekodirati nazad u binarni format.