ich habe ein Programm mit dem ich .gif Bilder betrachte und zoome.
Das Ganze habe ich mit einem QGraphicsView und einer QGraphicsScene realisiert.
Die Bilder werden über QGraphicsPixmapItems mit setPixmap und addItem zur Scene hinzugefügt.
Das Zoomen erledige ich mit QTransform und scale. Das klappt soweit ganz gut, doch ich habe einzelne .gif Bilder,
die die Anwendung beim Zoom auf den Faktor 0.5 (und da auch erst beim 2. Mal) crashen lassen.
Das passiert allerdings auch nur unter Windows Vista, unter Windows XP und Kubuntu zoomen alle .gif einwandfrei.
Code: Alles auswählen
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
QGraphicsScene *myScene = new QGraphicsScene;
QGraphicsPixmapItem *myItem = new QGraphicsPixmapItem;
myItem->setPixmap(QPixmap(":/image.gif"));
myScene->addItem(myItem);
ui->graphicsView->setScene(myScene);
}
void MainWindow::on_doubleSpinBox_valueChanged(double )
{
QTransform transform;
ui->graphicsView->setTransform(transform.scale(ui->doubleSpinBox->value(),ui->doubleSpinBox->value()));
}
Code: Alles auswählen
678 while (h--) {
679 const uint *src = (const quint32 *) (srcPixels + (srcy >> 16) * sbpl);
680 int srcx = basex;
681 for (int x=0; x<w; ++x) {
682 blender.write(&dst[x], src[srcx >> 16]);
683 srcx += ix;
684 }
oder wie kann ich verhindern, dass mir die Anwendung abstürzt?
mfg
sven