3 バイトごとに 1 ピクセル (RGB) を表す bytearray があります。タスクは、それを jpeg または png に変換することです。
実際、libpngを使用して画像ファイルを生成し、ファイルシステムに保存するZint(バーコードを生成するためのオープンソースlib)を使用していますが、Zintでは画像を生成する以外の関数png_plot()もディスクに保存するため、望ましくありません。
結果として、2つの方法があると思います:
1. ビットマップ bytearray から bmp -> jpeg / png (他のライブラリを使用)
2. フックまたは png_plot() に似たものを書く
アドバイスをいただけますか?ありがとうございました。
更新:@peacemaker用
FILE *f;
zint_symbol *my_symbol;
my_symbol = ZBarcode_Create();
ZBarcode_Encode_and_Buffer(my_symbol, (unsigned char *)argv[1], 0, 0);
f = fopen("bitmap.bmp", "w");
fwrite(my_symbol->bitmap, sizeof(*(my_symbol->bitmap)), my_symbol->bitmap_height * my_symbol->bitmap_width, f);
ZBarcode_Delete(my_symbol);
fclose(f);