1

画像を継続的に表示する必要がある QGraphicsView に QImage があります。反転した画像を連続して表示する必要がある場合があります。このために私は使用します

img.invertPixels(QImage::InvertRgba); 

ただし、この時点では、継続的な反転プロセスにより、ディスプレイがちらつきます。パフォーマンスに影響を与えずに反転プロセスを実装するにはどうすればよいですか? 表示は反転せずスムーズなようです。`

QImage img(byImageBuf, width, height, QImage::Format_Indexed8);   
  scene->clear();        
 if(bInvertPixel)       
 {   
    /* Inverted image */        
     img.invertPixels(QImage::InvertRgba);      
 }        
 scene->addPixmap(QPixmap::fromImage(img));     

 view->fitInView(0, 0, width, height,  Qt::IgnoreAspectRatio);        
 view->update();`
4

1 に答える 1

3

インデックス付きの画像タイプ ( QImage::Format_Indexed8) を使用しているため、カラー テーブルを反転させて切り替えることができます。

if(bInvertPixel)
{
   /* Inverted image */
   img.setColorTable( invertedColorTable );
}
else
{
   img.setColorTable( standardColorTable );
}

standardColorTableおよびinvertedColorTableQRgb 値の配列です。

The beauty of the color table is that you do not have to update it every time you display your image; just set it once and forget about it. Connect a signal from a button for inverting the colors and set the color table there.

于 2012-12-06T19:51:44.010 に答える