在Qt上裁剪图像

时间:2016-02-08 01:15:06

标签: c++ qt crop

我正在Qt上构建一个简单的图像编辑器。我已经在QGraphicsView上打开了我的图像,我希望能够裁剪它。经过大量的搜索,我想出了这个代码,但它不起作用。

void MainWindow::on_openButton_pressed()
{
    QString imagePath=QFileDialog::getOpenFileName(this,tr("Open File"),"",tr("JPEG (*.jpg *.jpeg);;PNG (*.png)"));
    imageObject=new QImage();
    imageObject->load(imagePath);
    image=QPixmap::fromImage(*imageObject);
    scene = new QGraphicsScene(this);
    scene->addPixmap(image);
    scene->setSceneRect(image.rect());
    ui->graphicsView->setScene(scene);
    ui->graphicsView->setDragMode(QGraphicsView::RubberBandDrag);
    showEvent();
}

void MainWindow::mousePressEvent(QMouseEvent *event){
    start=event->pos();
}

void MainWindow::mouseReleaseEvent(QMouseEvent *event)
{
    end=event->pos();
}

void MainWindow::on_cropButton_clicked()
{
    start=ui->graphicsView->mapFromScene(start);
    end=ui->graphicsView->mapFromScene(end);
    QRect rect(start, end);
    cropped.size()=rect.size();
    cropped=image.copy(rect);
    ui->graphicsView->scene()->addPixmap(cropped);
    ui->graphicsView->scene()->setSceneRect(cropped.rect());
    showEvent();
}

任何人都可以找到错误的位置或提出更好的方法吗? 非常感谢你。

0 个答案:

没有答案