当前位置:   article > 正文

QT使用QImage做图片切割_qt切割图片

qt切割图片
  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. #include <QFileDialog>
  4. #include <QDebug>
  5. MainWindow::MainWindow(QWidget *parent) :
  6. QMainWindow(parent),
  7. ui(new Ui::MainWindow)
  8. {
  9. ui->setupUi(this);
  10. // 选择本地图片文件
  11. QString filename = QFileDialog::getOpenFileName(nullptr, "选择图片", "", "Images (*.png *.xpm *.jpg *.bmp)");
  12. // 读取选中的图片文件
  13. QImage image(filename);
  14. // 检查是否成功加载图片
  15. if (image.isNull()) {
  16. qDebug() << "图片加载失败";
  17. }
  18. // 定义切割的宽度和高度
  19. int width = image.width() / 2; // 切割后的宽度
  20. int height = image.height() / 2; // 切割后的高度
  21. // 创建保存切割后图片的文件夹
  22. QString folderPath = QDir::currentPath() + "/cutting_image";
  23. QDir().mkdir(folderPath);
  24. // 切割并保存图片
  25. for (int x = 0; x < 2; x++) {
  26. for (int y = 0; y < 2; y++) {
  27. // 切割图片
  28. QImage cImage = image.copy(x * width, y * height, width, height);
  29. // 保存切割后的图片
  30. QString cuttingFilename = folderPath + "/cutting_image_" + QString::number(x) + "_" + QString::number(y) + ".png";
  31. qDebug() << "croppedFilename===="<<cuttingFilename;
  32. cImage.save(cuttingFilename);
  33. }
  34. }
  35. }
  36. MainWindow::~MainWindow()
  37. {
  38. delete ui;
  39. }

这里我使用的是深拷贝,什么叫深拷贝你们可以自行百度一下,我把一张图片平均分成了四份,你们可以按照你们自己的需求更改代码.主要就是:

image.copy(x,y,w,h);

test.png就是原图

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/182017
推荐阅读
相关标签
  

闽ICP备14008679号