レプトニカ ライブラリを使用していくつかの写真を処理しています。その後、QT GUI に表示したいと思います。Leptonica は画像に独自のフォーマット Pix を使用していますが、QT は独自のフォーマット QPixmap を使用しています。現時点で唯一の方法は、処理後に画像をファイル ( bmp など) として保存し、QT 関数呼び出しで再度読み込むことです。今、コードでそれらを変換したいので、ファイルシステムに保存して迂回する必要はありません。これを行う方法はありますか?
よろしくお願いします
// 編集:
すでに示唆されているように、PIX* を QImage に変換しようとしました。PIX* は次のように定義されます。
http://tpgit.github.com/Leptonica/pix_8h_source.html
struct Pix
{
l_uint32 w; /* width in pixels */
l_uint32 h; /* height in pixels */
l_uint32 d; /* depth in bits */
l_uint32 wpl; /* 32-bit words/line */
l_uint32 refcount; /* reference count (1 if no clones) */
l_int32 xres; /* image res (ppi) in x direction */
/* (use 0 if unknown) */
l_int32 yres; /* image res (ppi) in y direction */
/* (use 0 if unknown) */
l_int32 informat; /* input file format, IFF_* */
char *text; /* text string associated with pix */
struct PixColormap *colormap; /* colormap (may be null) */
l_uint32 *data; /* the image data */
};
QImageは次のような方法を提供してくれます:
http://developer.qt.nokia.com/doc/qt-4.8/qimage.html#QImage-7
QImage ( const uchar * data,
int width,
int height,
int bytesPerLine,
Format format )
コンストラクターを呼び出すときに、データを PIX から QImage にコピーすることはできないと思います。QImage をピクセルごとに塗りつぶす必要があると思いますが、実際には方法がわかりませんか? すべての座標をループする必要がありますか? ビット深度はどのように考慮すればよいですか? ここに何かアイデアはありますか?