3

イメージ ファイルから CImg インスタンスを作成する関数を持つ C++ ライブラリを変更して、代わりにバイト配列を使用しようとしています。これは可能ですか?それを許可しているように見える1つの方法を見つけました...

CImg  ( const t *const  values,  
  const unsigned int  size_x,  
  const unsigned int  size_y = 1,  
  const unsigned int  size_z = 1,  
  const unsigned int  size_c = 1,  
  const bool  is_shared = false  
) 

...しかし、私が持っているのはバイト配列だけなので、ソース画像の寸法はありません。

アドレス コメントへの更新 これは、ここで定義されている CImg クラスを使用する pHash ライブラリを変更する試みですhttp://cimg.sourceforge.net/reference/structcimg__library_1_1CImg.html

バイト配列は、ソース イメージの http 要求によって設定されます。

4

1 に答える 1

2

バイト配列に (ビットマップ部分だけでなく) イメージ ファイル全体のコピーが含まれている場合は、ヘッダーから寸法を読み取ることができます。

BITMAPFILEHEADERおよびを参照してくださいBITMAPINFOHEADER(もちろん、PNG や JPEG などの他の形式の場合は、対応するヘッダーが必要です)。

たとえば、これにより、最初にディスクに書き込むことなく、ネットワークまたはアプリケーション リソース セグメントから画像を表示できます。

于 2011-10-13T18:25:47.837 に答える