Qt4:画像データにインデックスカラーテーブルをつけてJPEG形式で保存する。


Qt4:百の定石


QImage クラスを使う。

高速カメラやストリークカメラの画像にカラーテーブルをつけるには 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に保存します。

  • JPEGに落とすとデータ自体はなくなるので、インデクッスカラー形式のTIFF画像に落とすと便利かも知れません。

最新の20件

2020-12-25 2007-03-14 2006-10-30 2006-11-09 2007-03-14 2006-11-09 2006-11-10 2006-11-09 2008-05-20 2007-11-07 2007-11-01

今日の20件

  • counter: 1042
  • today: 1
  • yesterday: 0
  • online: 1