当前位置: 首页 > news >正文

东莞网站设计建设正能量网站入口

东莞网站设计建设,正能量网站入口,软件培训公司排名,php整站最新版本下载背景 不规则区域进行截图是一种常见的应用场景,通常用于程序截图工具或者图像处理软件中。主要是为了让用户可以自由选择任意形状的区域进行截图,而不仅仅局限于矩形区域。这样用户可以更灵活地进行截图操作,特别是对于需要截取特定形状区域…

背景

不规则区域进行截图是一种常见的应用场景,通常用于程序截图工具或者图像处理软件中。主要是为了让用户可以自由选择任意形状的区域进行截图,而不仅仅局限于矩形区域。这样用户可以更灵活地进行截图操作,特别是对于需要截取特定形状区域的情况下非常实用。

通过实现鼠标自由选择不规则区域进行截图,用户可以更精确地选择需要截取的内容,避免不必要的部分被包含在截图中。

效果

先来看下运行效果:
在这里插入图片描述
截图效果:
在这里插入图片描述

在这里插入图片描述
可以看到,截图内容是根据鼠标自由选区来截取不规则的图形,其他区域为透明的。

关键代码

实现逻辑是在QML中鼠标选区记录坐标点,然后截取整个屏幕画面,根据坐标点将图片内容拷贝出来生成新的图片。

保存部分的代码:

void ScreenshotController::saveScreenshot(const QVariantList &points, const QString &format)
{if (!m_isCapturing || points.size() < 3) {qWarning() << "Cannot save screenshot: not capturing or invalid points";return;}// 创建路径掩码QPainterPath path;QPolygon polygon;// 添加所有点到路径和多边形if (points.size() > 0) {QPointF firstPoint = points[0].toPointF();path.moveTo(firstPoint);polygon << QPoint(firstPoint.x(), firstPoint.y());for (int i = 1; i < points.size(); i++) {QPointF p = points[i].toPointF();path.lineTo(p);polygon << QPoint(p.x(), p.y());qDebug() <<__FUNCTION__<< "point=" << p;}// 闭合路径path.closeSubpath();}// 获取选区的边界矩形QRect boundingRect = polygon.boundingRect();// 创建一个与边界矩形大小相同的透明pixmapQPixmap croppedResult(boundingRect.size());croppedResult.fill(Qt::transparent);// 创建QPainter在新的pixmap上绘制QPainter painter(&croppedResult);// 将路径移动到相对于边界矩形的位置path.translate(-boundingRect.topLeft());// 设置剪切路径,只绘制路径内的内容painter.setClipPath(path);// 绘制原始截图的对应部分painter.drawPixmap(0, 0, m_originalPixmap, boundingRect.x(), boundingRect.y(), boundingRect.width(), boundingRect.height());// 结束绘制painter.end();// 生成默认文件名QString defaultFileName = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation) + "/screenshot_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + "." + format.toLower();// 打开文件保存对话框QString filePath = QFileDialog::getSaveFileName(nullptr, tr("Save Screenshot"), defaultFileName, tr("Images (*.%1)").arg(format.toLower()));if (!filePath.isEmpty()) {// 保存截图if (croppedResult.save(filePath, format.toUtf8().constData())) {qDebug() << "Screenshot saved to:" << filePath;emit captureSaved(filePath);} else {qWarning() << "Failed to save screenshot to:" << filePath;}}// 重置状态m_isCapturing = false;emit isCapturingChanged();
}

源代码下载

http://www.dtcms.com/a/567903.html

相关文章:

  • 湖南北山建设集团网站centos7网站开发
  • 网站后台登陆代码销售网站建设实验报告
  • 成都企业网站seo技术做网站推广员必备的条件
  • 学校建设微网站的方案设计响应式网站建设哪里有
  • 广州市研发网站建设多少钱网站影响seo的标签
  • 自由建网站的网络程序建设网站机构
  • 网站如何做sem优化线下推广方法有哪些
  • 烟台开发区建设业联合会网站wordpress 代码规范
  • 外贸型网站建设方法wordpress留学主题
  • 重庆学校网站推广品牌高端网站设计
  • 自己怎么做wap网站wordpress手机端如何使用
  • 网站建设的思想wordpress docker中文文档
  • 金泉网做网站多少钱有哪些网站是响应式的
  • 如何做网站联盟免费建站软件哪个最好
  • 韩语网站建设注意事项做网站公司三年财务预算表
  • 安徽网站建设费用2022年最为成功的营销案例
  • 网站建设设计师的工作内容接单子做网站词
  • 网站建设一个人能做吗php7 mysql wordpress
  • iis如何添加网站做网站的参考书
  • 建设部指定招标网站网站群集约化建设
  • 免费的h5制作网站模板建设银行网站怎么能转账
  • 做一个网站的全部流程做ppt的软件
  • 接设计网站网站主页和子页风格如何统一
  • 网站负责人备案采集照具体要求wordpress新版编辑
  • 郑州企业网站推广品牌网查询
  • 以绿色为主色调的网站企业宣传推广
  • 北京cms建站系统网站建设免费域名
  • 手机制作表白网站wordpress wortd
  • 移动端网站一般宽做多大淘宝客网站空间
  • h5网站模板关键词推广优化