Lista bajtów zakodowana w Base64

0

Witam,

Po otrzymaniu odpowiedzi z serwera dostaję obraz w postaci array liczb próbuję go zamienić na base64 string poprzez:

const buffer = Buffer.from(data);
const base64String = buffer.toString('base64');

dostaję jakiś string ale kiedy go podstawię do atrybutu URL obraz nie działa. Kiedy skorzystałem ze strony https://www.base64-image.de/ i zamieniłem array, który dostaję z serwera, otrzymałem całkiem inny string, który działa.

Czy ktoś może mi powiedzieć co zrobić żeby otrzymać prawidłowy format Base64?

0
const buffer = Buffer.from(data);

Skąd masz ten Buffer? piszesz to w Node.js czy w przeglądarce?

Glt87 napisał(a):

Czy ktoś może mi powiedzieć co zrobić żeby otrzymać prawidłowy format base64?

A w jaki sposób aplikujesz ten string do url?
np. jeśli byś chciał src ustawić w <img> to tam na początku trzeba dodać informację dla przeglądarki, że to jest base64 i w jakim to formacie:
https://stackoverflow.com/questions/8499633/how-to-display-base64-images-in-html

Po drugie - nie wiem, co robisz, ale wydaje mi się, że możesz skorzystać z czegoś, co się nazywa Blob https://developer.mozilla.org/en-US/docs/Web/API/Blob i przekonwertować go na URL

0

Udło mi sie to zrobi¢ w ten sposob:

  useEffect(() => {
    api.get("/image/drawing").then((res) => {

      const data = res.data.plan.data;
      let array = new Uint8Array(data);

      const str = array.reduce((data, byte)=> {
        return data + String.fromCharCode(byte);
        }, '');

      setPlan(str)
      })
  }, [location])

i nastepnie juz tylko podstawiam do url. Informacja, że to base64 już jest w str

  <ImageOverlay url={plan === '' ? loadigGif : plan} bounds={bounds}>

1 użytkowników online, w tym zalogowanych: 0, gości: 1