void rotate() { int i; const int w = 64; const int h = 64; QImage image( w, h, 8, 128 ); // create image for ( i=0; i<128; i++ ) // build color table image.setColor( i, qRgb(i,0,0) ); for ( int y=0; y<h; y++ ) { // set image pixels uchar *p = image.scanLine(y); for ( int x=0; x<w; x++ ) *p++ = (x+y)%128; } QPixmap pm; pm = image; // convert image to pixmap pm.setOptimization( QPixmap::BestOptim ); // rotation will be faster QWidget *d = QApplication::desktop(); // w = desktop widget for ( i=0; i<=360; i += 2 ) { QWMatrix m; m.rotate( i ); // rotate coordinate system QPixmap rpm = pm.xForm( m ); // rpm = rotated pixmap d->setBackgroundPixmap( rpm ); // set desktop pixmap d->update(); // repaint desktop } }
void MyPaint(NBioBSPRollDemo_Widget* pWidget) { QPixmap Spm; Spm = pWidget->m_RollImage; Spm.setOptimization(QPixmap::BestOptim); QWMatrix Sm; Sm.scale((double)IMAGE_FRAME_WIDTH/(double)pWidget->m_DeviceInfo0.ImageWidth, (double)IMAGE_FRAME_HEIGHT/(double)pWidget->m_DeviceInfo0.ImageHeight); QPixmap Srpm = Spm.xForm(Sm); bitBlt(pWidget->m_frmRoll, 0, 0, &Srpm); }