高速カメラやストリークカメラの画像にカラーテーブルをつけるには QImage クラスを使います。 ここではデータ imgData が8ビットであるとします。
void img2jpeg:: makeImage(unsigned char* imgData) { QSize gsize(hSize, vSize) ; QImage qimg(gsize, QImage::Format_Indexed8) ; //インデックスカラーの登録 qimg.setNumColors(256) ; for(int i=0; i<256; i++){ qimg.setColor(i, qRgb(color.red(i), color.green(i), color.blue(i))) ; } //画像データをQImageにコピー for(int y=0; y<vSize ; ++y){ // set data to image for(int x=0; x<hSize ; ++x){ *(qimg.scanLine(y) + x) = *(imgData+y*hSize+x) ; } } pixmap= QPixmap::fromImage(qimg) ; pixmap.save(saveName, "JPEG", quality) ; }
カラーは0-255の範囲で指定します。QImage を QPixmap に入れて、JPEGに保存します。