Qt4:カラーテーブルをつける


Qt4:百の定石


高速カメラやストリークカメラの画像等にカラーテーブルをつけて画像ファイルに保存

画像の強度は8ビット(0-255) でなければなりません。

  • QImage を8ビットインデックスカラーに指定する。
  • setColor() でカラーテーブルを登録する。
  • scanLine()を使って値を代入する。
  • QPixmap に変換し、保存する。
void img2jpeg:: makeImage(unsigned char* imgData)
{	 
  QSize gsize(hSize, vSize) ; // hSize, vSize は自分で指定
  QImage qimg(gsize, QImage::Format_Indexed8) ; 
  qimg.setNumColors(256) ;
  for(int i=0; i<256; i++){
     qimg.setColor(i, qRgb(red[i], green[i], blue[i])) ; // 0-255
  }
 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] ;
    }
 }
 QPixmap pixmap = QPixmap::fromImage(qimg) ;
 pixmap.save(saveName, "JPEG", 80) ; //80 quality
}