LINUX.ORG.RU

FreeImage_Allocate() + FreeImage_Save()


0

1

Вот простенькая программка: создает картинку 100x100 пикс (1 байт на пиксель):

#include <FreeImage.h>

int main (int argc, char **argv) {
  if (argc < 2) return -1;
  char *filename_o = argv[1];

  FreeImage_Initialise (1);

    FIBITMAP *dibx;
    int wx = 100;
    int hx = 100;
    dibx = FreeImage_Allocate(wx,hx,1);
    BYTE *px = FreeImage_GetBits(dibx);
    px[0] = 255;
    FreeImage_Save(FreeImage_GetFIFFromFilename(filename_o), dibx, filename_o, 0);
    FreeImage_Unload(dibx);

  FreeImage_DeInitialise();

  return 0;
}

$ ./_test 1.png
Однако, белого пикселя с координатами +0+0 - не видно. Почему?

★★★★★

Причину нашел. BPP в последнем аргументе _Allocate(), это - _бит_ на пиксель.

То есть, надо:

dibx = FreeImage_Allocate(wx,hx,1*8);

pacify ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.