( TCH | 2021. 12. 04., szo – 11:05 )

Szerkesztve: 2021. 12. 04., szo – 11:27

Bocsi, kérdeznék valamit...
A zc_bitmap.c forrásában a struct _bm_t data tag-je uint8_t* (L#14). A bm_write függvényben innen olvasod be az r, g, b változókat (L#112). Ha a data uint8_t*, akkor miért kell az onnan beolvasott értékeket levalidálni, hogy nagyobbak-e, mint 255?

Sz*rk: Másik kérdés: a koordinátákból az indexeknek a folyton újraszámolgatása helyett nem volna gyorsabb a sorfolytonos írás és olvasás, az alpha skippelésével? Valami ilyesmire gondolok:

  int s_index = 0;
  int d_index = 0;
  int c = h * w;
  for (int i = 0; i < c; i++)
  {
    uint8_t r = bm->data[s_index++];
    uint8_t g = bm->data[s_index++];
    img[d_index++] = bm->data[s_index++]; // b
    img[d_index++] = g;
    img[d_index++] = r;
    ++s_index;
  }