#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFileDialog>
#include <QDebug>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);// 选择本地图片文件QString filename = QFileDialog::getOpenFileName(nullptr, "选择图片", "", "Images (*.png *.xpm *.jpg *.bmp)");// 读取选中的图片文件QImage image(filename);// 检查是否成功加载图片if (image.isNull()) {qDebug() << "图片加载失败";}// 定义切割的宽度和高度int width = image.width() / 2; // 切割后的宽度int height = image.height() / 2; // 切割后的高度// 创建保存切割后图片的文件夹QString folderPath = QDir::currentPath() + "/cutting_image";QDir().mkdir(folderPath);// 切割并保存图片for (int x = 0; x < 2; x++) {for (int y = 0; y < 2; y++) {// 切割图片QImage cImage = image.copy(x * width, y * height, width, height);// 保存切割后的图片QString cuttingFilename = folderPath + "/cutting_image_" + QString::number(x) + "_" + QString::number(y) + ".png";qDebug() << "croppedFilename===="<<cuttingFilename;cImage.save(cuttingFilename);}}}MainWindow::~MainWindow()
{delete ui;
}
这里我使用的是深拷贝,什么叫深拷贝你们可以自行百度一下,我把一张图片平均分成了四份,你们可以按照你们自己的需求更改代码.主要就是:
image.copy(x,y,w,h);test.png就是原图