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

基于 Qt 的图片处理工具开发(一):拖拽加载与基础图像处理功能实现

一、引言

在桌面应用开发中,图片处理工具的核心挑战在于用户交互的流畅性异常处理的健壮性。本文以 Qt为框架,深度解析如何实现一个支持拖拽加载、亮度调节、角度旋转的图片处理工具。通过严谨的文件格式校验、分层的架构设计和用户友好的交互逻辑,构建可扩展的图像处理基础框架,为后续功能迭代奠定基础。

二、文件交互核心技术解析:从拖拽到格式校验的全流程实现

1. 拖拽文件加载的事件机制与 MIME 数据处理

Qt 的拖放系统基于QMimeData实现,支持跨应用数据传输。在ImageProcessorWidget中,通过重写两个核心事件实现文件拖拽功能:

dragEnterEvent:筛选有效文件类型
void ImageProcessorWidget::dragEnterEvent(QDragEnterEvent *event) {// 检查是否包含URL数据(本地文件拖拽的标准格式)if (event->mimeData()->hasUrls()) {// 遍历所有拖拽的URLforeach (const QUrl &url, event->mimeData()->urls()) {QString filePath = url.toLocalFile();// 校验文件后缀(不区分大小写)if (filePath.endsWith({".png", ".jpg", ".jpeg"}, Qt::CaseInsensitive)) { event->acceptProposedAction(); // 接受拖拽操作return; // 单个有效文件即可接受事件}}}event->ignore(); // 忽略无效文件拖拽
}

关键点

  • 使用endsWith的 QString 列表形式,更简洁地支持多后缀校验
  • 提前返回,避免无效循环,提升事件处理效率
dropEvent:执行文件加载逻辑
void ImageProcessorWidget::dropEvent(QDropEvent *event) {foreach (const QUrl &url, event->mimeData()->urls()) {QString filePath = url.toLocalFile();if (isImageFile(filePath)) { // 自定义格式校验函数loadImage(filePath); // 封装加载逻辑break; // 处理第一个有效文件}}event->acceptProposedAction();
}bool ImageProcessorWidget::isImageFile(const QString &path) {// 读取文件前8字节检测魔数(可选优化:提升安全性)// 此处简化为后缀校验+QImage格式检测return path.endsWith({".png", ".jpg", ".jpeg"}, Qt::CaseInsensitive);
}

2. 超越后缀名的文件格式校验:QImage 的底层实现原理

直接依赖文件后缀名存在安全风险(如恶意文件伪造后缀),Qt 提供的QImage::fromData通过解析文件二进制数据进行格式校验:

bool ImageProcessor::loadImage(const QString& filePath) {QFile file(filePath);if (!file.open(QIODevice::ReadOnly)) { showError(tr("文件打开失败"), filePath); // 封装错误提示函数return false;}QByteArray data = file.readAll(); // 读取全部文件数据QImage img = QImage::fromData(data); // 核心校验步骤:尝试解码图像数据if (img.isNull()) { // 处理三种可能情况:// 1. 非图片文件(如文本文件改名.jpg)// 2. 损坏的图片文件(数据不完整)// 3. 不支持的图片格式(Qt4默认支持BMP/PNG/JPEG/GIF等)showError(tr("无效图片文件"), filePath);return false;}// 存储原始图片与初始调整后图片originalPixmap = QPixmap::fromImage(img); adjustedPixmap = originalPixmap.copy();return true;
}void ImageProcessor::showError(const QString &msg, const QString &path) {QMessageBox::critical(0, tr("错误"), tr("%1: %2").arg(msg).arg(path));
}

技术优势

  • 二进制数据校验比后缀名校验更可靠,能识别大部分伪造文件
  • QPixmapQImage的配合:QImage用于像素级处理,QPixmap用于界面显示

三、图像处理核心功能:从像素操作到交互逻辑的分层设计

1. 亮度调节的数学原理与工程实现

算法实现:RGB 亮度调整模型

每个像素的 RGB 值通过亮度偏移量value进行调整,使用qBound函数确保颜色值在[0, 255]范围内:

void ImageProcessor::adjustBrightness(int value) {// 限制亮度调整范围(避免用户误操作导致极值)int clampedValue = qBound(-100, value, 100); QImage img = originalPixmap.toImage(); // 转换为QImage进行像素操作// 逐像素处理(可优化:使用Qt的图像变换API提升性能)for (int y = 0; y < img.height(); ++y) {for (int x = 0; x < img.width(); ++x) {QRgb pixel = img.pixel(x, y);// 分解RGB分量int r = qRed(pixel) + clampedValue;int g = qGreen(pixel) + clampedValue;int b = qBlue(pixel) + clampedValue;// 边界处理:避免颜色值溢出img.setPixel(x, y, qRgb(qBound(0, r, 255), qBound(0, g, 255), qBound(0, b, 255)));}}adjustedPixmap = QPixmap::fromImage(img); // 更新显示数据
}
交互优化:实时反馈与状态同步
  • 亮度滑块QSlider绑定valueChanged信号,即时触发adjustBrightness
  • 亮度标签QLabel通过updateBrightnessLabel实时显示当前值:
void ImageProcessorWidget::updateBrightnessLabel() {brightnessLabel->setText(tr("当前亮度: %1").arg(imageProcessor.getCurrentBrightness()));
}

2. 角度旋转的坐标变换与交互一致性实现

核心变换:QTransform 的旋转矩阵应用

Qt 的QTransform封装了二维图形变换,旋转功能通过以下步骤实现:

void ImageProcessor::setRotation(int angle) {// 角度归一化:确保在[0, 360)范围内int normalizedAngle = angle % 360; if (normalizedAngle < 0) normalizedAngle += 360; // 处理负角度QImage img = originalPixmap.toImage();QTransform transform;transform.rotate(normalizedAngle); // 应用旋转变换// 旋转后可能需要调整图像大小(保持宽高比,避免拉伸)QImage rotatedImage = img.transformed(transform, Qt::FastTransformation); adjustedPixmap = QPixmap::fromImage(rotatedImage);
}
多交互方式同步:输入框与滑块的双向绑定
// 滑块拖动时更新输入框和图片
void ImageProcessorWidget::rotateBySlider(int value) {imageProcessor.setRotation(value);rotationAngleInput->setText(QString::number(value)); // 输入框同步滑块值
}// 输入框回车时更新滑块和图片(需连接returnPressed信号)
void ImageProcessorWidget::rotateByInput() {bool ok;int angle = rotationAngleInput->text().toInt(&ok);if (ok && angle >= 0 && angle < 360) {rotationSlider->setValue(angle); // 滑块同步输入框值imageProcessor.setRotation(angle);}
}

四、工程化设计:从界面布局到异常处理的健壮性构建

1. 模块化界面布局:使用 QGroupBox 提升可用性

将功能分组管理,符合用户认知习惯:

void ImageProcessorWidget::initUI() {// 顶层布局QVBoxLayout *mainLayout = new QVBoxLayout(this);// 文件操作分组(水平布局)QHBoxLayout *fileOpsLayout = new QHBoxLayout();fileOpsLayout->addWidget(loadButton);fileOpsLayout->addWidget(saveButton);// 角度控制分组(包含按钮、输入框、滑块)QGroupBox *rotationGroup = new QGroupBox(tr("角度调整"));QHBoxLayout *rotationLayout = new QHBoxLayout(rotationGroup);rotationLayout->addWidget(rotateClockwiseBtn);rotationLayout->addWidget(rotateCounterBtn);rotationLayout->addWidget(angleInput);rotationLayout->addWidget(applyAngleBtn);rotationLayout->addWidget(rotationSlider);// 亮度控制分组(标签+滑块)QGroupBox *brightnessGroup = new QGroupBox(tr("亮度调节"));QHBoxLayout *brightnessLayout = new QHBoxLayout(brightnessGroup);brightnessLayout->addWidget(brightnessLabel);brightnessLayout->addWidget(brightnessSlider);// 组装布局mainLayout->addLayout(fileOpsLayout);mainLayout->addWidget(rotationGroup);mainLayout->addWidget(brightnessGroup);mainLayout->addWidget(imageLabel);
}

2. 异常处理的三层防护体系

异常类型处理方式实现代码位置
文件系统错误QMessageBox 提示 + 错误码日志(可选)loadImage中的文件打开检测
格式校验失败明确提示 “无效图片文件”QImage::fromData返回 kNull 时
用户输入错误输入框即时校验 + 错误恢复onRotationAngleInputChanged
数值越界qBound 函数强制约束亮度 / 角度设置的核心逻辑中

 

五、效果展示

界面截图

操作流程

  1. 拖拽文件:将图片拖入窗口,自动加载并预览。
  2. 调节亮度:滑动亮度滑块,实时显示亮度值(标签同步更新)。
  3. 旋转图片:点击旋转按钮、输入角度或拖动滑块,图片即时旋转。

六、性能与可维护性优化

1. 代码可维护性:单一职责原则实践

  • ImageProcessor类封装核心算法(加载、亮度、旋转),与界面逻辑分离
  • ImageProcessorWidget专注 UI 交互,通过信号槽解耦业务逻辑
  • 错误提示封装为独立函数showError,避免重复代码

2. 潜在性能优化点(后续实现方向)

  1. 图片缓存:使用QPixmapCache存储处理后的图片,避免重复计算
  2. 多线程加载:通过QThread异步读取大文件,防止 UI 卡顿
  3. 像素操作优化:使用QImage::bits()直接操作像素数据,减少函数调用开销

七、典型问题与解决方案

1. "无法访问私有成员" 错误

场景:在ImageProcessorWidget中直接访问ImageProcessor的私有变量currentRotation
解决方案:在ImageProcessor中添加公共访问方法:

// ImageProcessor.h
int getCurrentRotation() const { return currentRotation; }// 使用时通过公共方法获取
rotationSlider->setValue(imageProcessor.getCurrentRotation());

2. 图片旋转后显示不全

原因:旋转后图片尺寸变化,未调整QLabel大小
优化:设置标签自动缩放图片:

imageLabel->setScaledContents(true); // 开启自动缩放
imageLabel->setMinimumSize(400, 300); // 设置最小显示区域

八、总结:从单体功能到可扩展架构

已实现的工程化特性

  1. 分层架构:UI 层与逻辑层分离,方便后续功能扩展
  2. 异常处理:覆盖文件操作、用户输入、数值计算等核心场景
  3. 交互设计:多模态操作(按钮 / 输入框 / 滑块)与状态同步机制
  4. 格式安全:后缀校验与二进制数据校验双重保障

相关文章:

基于 Qt 的图片处理工具开发(一):拖拽加载与基础图像处理功能实现

一、引言 在桌面应用开发中&#xff0c;图片处理工具的核心挑战在于用户交互的流畅性和异常处理的健壮性。本文以 Qt为框架&#xff0c;深度解析如何实现一个支持拖拽加载、亮度调节、角度旋转的图片处理工具。通过严谨的文件格式校验、分层的架构设计和用户友好的交互逻辑&am…...

2025年4月通信科技领域周报(3.31-4.06):6G技术加速落地与全连接生态构建

2025年4月通信科技领域周报&#xff08;3.31-4.06&#xff09;&#xff1a;6G技术加速落地与全连接生态构建 目录 一、本周热点回顾二、技术进展深度解析三、产业动态全景扫描四、行业生态与政策风向五、专业术语解释六、免责声明 一、本周热点回顾 1. 华为发布6G全场景技术…...

Codeforces-CF816B-Karen and Coffee(差分/前缀和)

题目翻译&#xff1a; Karen 喜欢咖啡。 她有 n 本食谱&#xff0c;第 i 本食谱包含两个数 li​,ri​&#xff0c;表示这本食谱推荐用 [li​,ri​] 之间的温度&#xff08;包含 li​.ri​&#xff09;来煮咖啡。 Karen 认为一个温度 a 是可接受的当且仅当有 ≥k 本食谱推荐用 …...

4.DJI-PSDK云台x-port控制:

DJI-PSDK云台x-port控制&#xff1a; X-Port 功能控制&#xff0c;即控制 X-Port 云台&#xff0c;头文件为 dji_xport.h 使用PSDK 的“云台控制”功能&#xff0c;开发者需要先设计负载设备的云台并开发出控制云台的程序&#xff0c;将云台的控制函数注册到PSDK 指定的接口后…...

大语言模型中的幻觉现象深度解析

一、幻觉的定义及出现的原因 1. 基本定义 ​​幻觉(Hallucination)​​ 指大语言模型在自然语言处理过程中产生的与客观事实或既定输入相悖的响应&#xff0c;主要表现为信息失准与逻辑矛盾。 2. 幻觉类型与机制 2.1 事实性幻觉 ​​定义​​&#xff1a;生成内容与可验证…...

衣橱管理助手系统(衣服推荐系统)(springboot+ssm+vue+mysql)含运行文档

衣橱管理助手系统(衣服推荐系统)(springbootssmvuemysql)含运行文档 该系统名为衣橱管理助手&#xff0c;是一个衣物搭配管理系统&#xff0c;主要功能包括衣物档案管理、衣物搭配推荐、搭配收藏以及套装智能推荐。用户可以通过系统进行衣物的搭配和收藏管理&#xff0c;系统提…...

视觉对象 - 数据可视化解读

Power BI 提供了丰富的视觉对象(Visuals),帮助用户以直观的方式呈现和分析数据。以下是 32 个常用视觉对象的解读及案例分享,涵盖核心功能、适用场景和注意事项。内容基于实际应用场景整理,便于快速理解。 一、数据比较类视觉对象 这类视觉对象主要用于比较不同类别、组别…...

使用物联网卡的烟感(NB-IoT/4G烟感)详解

基于物联网卡&#xff08;NB-IoT/4G&#xff09;的智能烟感是一种无线联网型火灾报警设备&#xff0c;相比传统烟感&#xff0c;它能够实时上报火警信息&#xff0c;适用于无人值守场所、智慧消防、远程监控等场景。 1. 物联网卡烟感的核心功能 功能说明实时报警探测到烟雾后&…...

(2)网络学习之堡垒机

堡垒机和防火墙的区别&#xff1a; 1.功能定位 防火墙主要负责抵御外部攻击&#xff0c;就像一道坚固的城墙&#xff0c;防止黑客进入内部网络。堡垒机则专注于内部管理&#xff0c;监控和记录运维人员的操作行为&#xff0c;确保内部网络的安全。 2.部署位置与作用范围 防…...

FlinkSQL的常用语言

FlinkSQL 常用语言指南 FlinkSQL 是 Apache Flink 提供的 SQL 接口&#xff0c;允许用户使用标准 SQL 或扩展的 SQL 语法来处理流式和批式数据。以下是 FlinkSQL 的常用语言元素和操作&#xff1a; 基本查询 -- 选择查询 SELECT * FROM table_name;-- 带条件的查询 SELECT c…...

Go语言编写一个进销存Web软件的demo

Go语言编写一个进销存Web软件的demo 用户现在要求用。之前他们已经讨论了用Django实现的方案&#xff0c;现在突然切换到Go&#xff0c;可能有几个原因。首先&#xff0c;用户可能对Go语言感兴趣&#xff0c;或者他们公司的技术栈转向了Go。其次&#xff0c;用户可能希望比较不…...

架构设计之Redisson分布式锁-可重入同步锁(一)

架构设计之Redisson分布式锁-可重入同步锁(一) Redisson分布式锁官方博客地址 1、Redisson是什么 Redisson 是一个基于 Redis 的 Java 分布式工具库&#xff0c;它提供了 分布式锁、集合、队列、缓存、Map、限流、任务调度 等高级数据结构和功能&#xff0c;极大地简化了 Ja…...

使用libcurl编写爬虫程序指南

用户想知道用Curl库编写的爬虫程序是什么样的。首先&#xff0c;我需要明确Curl本身是一个命令行工具和库&#xff0c;用于传输数据&#xff0c;支持多种协议。而用户提到的“Curl库”可能指的是libcurl&#xff0c;这是一个客户端URL传输库&#xff0c;可以用在C、C等编程语言…...

【数据结构】排序算法(下篇·终结)·解析数据难点

前引&#xff1a;归并排序作为一种高效排序方法&#xff0c;掌握起来还是有点困难的&#xff0c;何况需要先接受递归的熏陶&#xff0c;这正是编程的浪漫之处&#xff0c;我们不断探索出新的可能&#xff0c;如果给你一串数据让其变得有序&#xff1f;是选择简单的冒泡、插入排…...

Django 使用 Celery 完成异步任务或定时任务

1 介绍 Celery是一个分布式任务队列&#xff0c;由三个主要组件组成&#xff1a;Celery worker、Celery beat 和消息代理&#xff08;例如 Redis 或 RabbitMQ&#xff09;。这些组件一起协作&#xff0c;让开发者能够轻松地执行异步任务和定时任务。 Celery worker&#xff1…...

Excel 自动执行全局宏

Excel 自动执行全局宏 25.04.09 步骤 1&#xff1a;创建个人宏工作簿&#xff08;Personal.xlsb&#xff09; 生成Personal.xlsb &#xff08;如尚未存在&#xff09;&#xff1a; 打开Excel → 开发工具 → 录制宏 → 选择“保存到个人宏工作簿” → 停止录制。按 Alt F11 进…...

【前缀和】矩阵区域和(medium)

矩阵区域和&#xff08;medium&#xff09; 题⽬描述&#xff1a;解法&#xff1a;代码Java 算法代码&#xff1a;C 算法代码&#xff1a; 题⽬描述&#xff1a; 题⽬链接&#xff1a;1314. 矩阵区域和 给你⼀个 m x n 的矩阵 mat 和⼀个整数 k &#xff0c;请你返回⼀个矩阵 …...

Android ViewStub显示VISIBLE与消失GONE,Kotlin

Android ViewStub显示VISIBLE与消失GONE&#xff0c;Kotlin import android.os.Bundle import android.util.Log import android.view.View import android.view.ViewStub import android.widget.Button import androidx.appcompat.app.AppCompatActivity import androidx.trac…...

【愚公系列】《高效使用DeepSeek》063-海关数据获取和管理

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…...

探索 OSPF 协议:构建高效网络的基石

文章目录 目录 文章目录 前言 一.OSPF协议概述 二.OSPF相关概念 &#x1f564; 2.1 基本思想 &#x1f564; 2.2 SPF算法 &#x1f564; 2.3 区域划分​编辑 三.OSPF工作原理 ​编辑 &#x1f564; 3.1 DR/BDR选举 四.OSPF网络类型 &#x1f564;4.1 BMA &#x1f564;4.2 P2P …...

深入剖析C++单例模式的八种实现演进与工程实践

深入剖析C单例模式的八种实现演进与工程实践 一、从基础到工业级&#xff1a;单例模式的演进图谱 1.1 基础实现的致命缺陷分析 // 初级版&#xff08;非线程安全&#xff09; class NaiveSingleton { public:static NaiveSingleton* getInstance() {if (!instance) {instanc…...

手游防DDoS攻击SDK接入

在手游中集成防DDoS攻击SDK是抵御流量型和应用层攻击的核心手段之一。以下从​​SDK选型、接入流程、防护策略优化​​三个维度提供完整指南&#xff0c;并附关键代码示例&#xff1a; ​​一、SDK选型与核心能力对比​​ ​​服务商​​​​优势​​​​劣势​​​​适用场景…...

【C++进阶】关联容器:multimap类型

目录 一、multimap 基础概念与底层实现 1.1 定义与核心特性 1.2 底层数据结构 1.3 类模板定义 1.4 与其他容器的对比 二、multimap 核心操作详解 2.1 定义与初始化 2.2 插入元素 2.3 查找元素 2.4 删除元素 2.5 遍历元素 三、性能分析与适用场景 3.1 时间复杂度分…...

学习threejs,使用EffectComposer后期处理组合器(采用RenderPass、FilmPass渲染通道)

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.EffectComposer 后期…...

用Django和AJAX创建一个待办事项应用

用Django和AJAX创建一个待办事项应用 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 用Django和AJAX创建一个待办事项应用让我们创建一个简单的 Django 项目,其中包含不同类型的 A…...

​【微调大模型】使用LLaMA-Factory进行监督微调 Qwen2.5 ​

本文使用LLaMA-Factory进行监督微调 Qwen2.5。 此监督微调&#xff08;SFT&#xff09;脚本具有以下特点&#xff1a; 支持单GPU和多GPU训练&#xff1b;支持全参数调优&#xff0c;LoRA&#xff0c;Q-LoRA&#xff0c;Dora。 下面详细介绍一下该脚本的使用方法。 目录 安装…...

前端 react+ant design ,后端 springboot +mysql+redis 全栈项目零基础小白从服务器初始化开始部署上线超详细保姆级教程

哈喽小伙伴们,好久不见,我是小李,今天,来电干货,希望对大家有帮助。 去年12月底的时候心血来潮,正好赶上腾讯云在做活动,就买了一台服务器,说是后面打算上线一两个项目,体验体验云服务器究竟是怎么玩的。后来由于实习和“冬招”,实在忙不过来了,就放在文件夹吃灰了…...

[Windows] OfficeAI 助手 v0.3.20(长期免费,2025-03-18 本地支持WPS_Word联动)

OfficeAI助手&#xff0c;作为Microsoft Office与WPS的得力智能插件&#xff0c;集文档自动生成、内容精准校对与润色、公式智能推荐等多功能于一体。它凭借强大的数据分析能力&#xff0c;深度融入Office/WPS办公生态&#xff0c;一键简化复杂流程&#xff0c;让办公效率倍增&…...

3DGS之光栅化

光栅化&#xff08;Rasterization&#xff09;是计算机图形学中将连续的几何图形&#xff08;如三角形、直线等&#xff09;转换为离散像素的过程&#xff0c;最终在屏幕上形成图像。 一、光栅化的核心比喻 像画家在画布上作画 假设你是一个画家&#xff0c;要把一个3D立方体画…...

可发1区的超级创新思路(python 、MATLAB实现):基于SAM+Informer+2DCNN的功率预测模型

首先声明,该模型为原创!原创!原创!且该思路还未有成果发表,感兴趣的小伙伴可以借鉴! 目录 首先声明,该模型为原创!原创!原创!且该思路还未有成果发表,感兴趣的小伙伴可以借鉴! 一、模型背景与核心创新 二、模型组件详解 1. SAM时空注意力模块 原理说明 代码实…...

【Java面试系列】Spring Boot微服务架构下的分布式事务解决方案与性能优化详解 - 3-5年Java开发必备知识

【Java面试系列】Spring Boot微服务架构下的分布式事务解决方案与性能优化详解 - 3-5年Java开发必备知识 1. 引言 在当今的微服务架构中&#xff0c;分布式事务是一个不可避免的话题。随着业务复杂度的提升&#xff0c;如何保证跨服务的数据一致性成为开发者和架构师必须面对…...

【MATLAB第114期】基于MATLAB的SHAP可解释神经网络分类模型(敏感性分析方法)

【MATLAB第114期】基于MATLAB的SHAP可解释神经网络分类模型&#xff08;敏感性分析方法&#xff09; 引言 该文章实现了一个可解释的神经网络分类模型&#xff0c;使用BP神经网络&#xff08;BPNN&#xff09;来预测特征输出。该模型利用12个变量参数作为输入特征进行训练。为…...

WPS免费使用宏(安装VBA插件)

WPS提示要开会员才能使用宏&#xff0c;多次搜索发现其实可以直接安装VBA插件就行&#xff0c;Mark一下 插件下载地址&#xff1a; https://www.onlinedown.net/soft/10044362.htm ‘’’ WPS插件软件介绍 wps vba是一款wps office插件&#xff0c;安装wps vba 7.1就可以让of…...

让测试飞起来——DevOps中的自动化测试实践指南

让测试飞起来——DevOps中的自动化测试实践指南 近年来,DevOps理念已经成为现代软件开发和运维的“最佳拍档”。它倡导“开发”和“运维”的协作,核心目标是加速交付,同时保障软件质量。而在这一过程中,测试自动化扮演了不可替代的角色。今天,我们就一起来聊聊测试自动化…...

开源AI大模型AI智能名片S2B2C商城小程序:科技浪潮下的商业新引擎

摘要&#xff1a; 本文聚焦于科技迅猛发展背景下&#xff0c;开源AI大模型、AI智能名片与S2B2C商城小程序的融合应用。通过分析元宇宙、人工智能、区块链、5G等前沿科技带来的商业变革&#xff0c;阐述开源AI大模型AI智能名片S2B2C商城小程序在整合资源、优化服务、提升用户体验…...

webpack配置导致浏览器自动刷新

文章目录 关键配置 - liveReload 关键配置 - liveReload const dev_config {devtool: source-map,// watch: true,devServer: {contentBase: path.resolve(__dirname, bin),port: 8005,host:192.168.xx.xx,inline: true,hot: false,liveReload: false //关键这一行【false不会…...

OPEX baota 2024.02.26

OPEX baota 2024.02.26 运维集成软件宝塔2024.02.26作废例子&#xff1a; 最重要的两个地方&#xff1a;上传文件 网站&#xff0c;重启应用服务器&#xff08;tomcat&#xff09; 其他很少用的...

【Pandas】pandas DataFrame to_numpy

Pandas2.2 DataFrame Conversion 方法描述DataFrame.astype(dtype[, copy, errors])用于将 DataFrame 中的数据转换为指定的数据类型DataFrame.convert_dtypes([infer_objects, …])用于将 DataFrame 中的数据类型转换为更合适的类型DataFrame.infer_objects([copy])用于尝试…...

Tensorflow2实现: LSTM-火灾温度预测

- **&#x1f368; 本文为[&#x1f517;365天深度学习训练营](https://mp.weixin.qq.com/s/rnFa-IeY93EpjVu0yzzjkw) 中的学习记录博客** - **&#x1f356; 原作者&#xff1a;[K同学啊](https://mtyjkh.blog.csdn.net/)** 一&#xff1a;理论知识基础 1.LSTM原理 一句话介…...

【降尺度】AI+CMIP6数据分析与可视化、降尺度技术与气候变化的区域影响、极端气候分析

气候变化已成为全球性挑战&#xff0c;对农业、生态系统、水资源、人类健康和社会经济系统产生深远影响。科学研究表明&#xff0c;自工业革命以来&#xff0c;人类活动导致的温室气体排放与全球气温上升、极端天气事件增加、冰川融化和海平面上升等现象密切相关。为科学理解和…...

粒子系统优化完成

按计划对幻世&#xff08;OurDream&#xff09;2D图形引擎的粒子系统进行了加强和优化&#xff0c;重点强化了粒子运动的控制和颜色混合效果的功能&#xff0c;目前优化过后的粒子系统的整体效果是令人满意的。...

spark-core编程

RDD转换算子 RDD 的两种算子&#xff1a;转换算子和行动算子。 RDD 根据数据处理方式的不同将算子整体上分为 Value 类型、双 Value 类型和 Key-Value 类型。 算子实际上是一些函数&#xff0c;用于数据处理。 Value类型 map 将处理的数据逐条进行映射转换&#xff0c;…...

智慧班牌系统解决方案,SaaS智慧电子班牌云平台

智慧班牌系统解决方案 系统概述 智慧班牌是智慧校园建设不断发展的产物&#xff0c;是教育信息化改革的载体。通过智慧班牌可以高效便捷传递各种知识信息和通知信息、及时反馈课堂信息、实现班级的透明化管理。智慧班牌将学生平安考勤、异常出勤情况及时反馈至家长、老师&…...

Flutter 2025 Roadmap

2025 这个路线图是有抱负的。它主要代表了我们这些在谷歌工作的人收集的内容。到目前为止&#xff0c;非Google贡献者的数量超过了谷歌雇佣的贡献者&#xff0c;所以这并不是一个详尽的列表&#xff0c;列出了我们希望今年Flutter能够出现的所有令人兴奋的新事物&#xff01;在…...

【开发工具】科研开发中的主流AI工具整理及如何使用GPT润色英文论文

一、主流AI工具 AI技术发展至今已经逐渐成熟&#xff0c;并可以取代一部分科研和开发中的简单工作&#xff0c;并为复杂工作提高辅助&#xff0c;除此之外也是更高级的信息检索工具。熟练掌握 AI 工具在当前市场理应具有竞争优势&#xff0c;目前笔者在科研和开发中接触过AI工…...

用excel做九乘九乘法表

公式&#xff1a; IF($A2>B 1 , 1, 1,A2 & “" & B$1 & “” & $A2B$1,”")...

nacos配置达梦数据库驱动源代码步骤

1.在父工程pom.xml添加依赖&#xff1a; <dependency><groupId>com.dameng</groupId><artifactId>DmJdbcDriver18</artifactId><version>8.1.1.193</version> </dependency> 2.在nacos-config模块pom.xml添加依赖&#xff1…...

Spring Boot 线程池配置详解

Spring Boot 线程池配置详解 一、核心配置参数及作用 基础参数核心线程数 (corePoolSize)‌ 作用‌:线程池中始终保持存活的线程数量,即使空闲也不回收‌。 建议‌:根据任务类型设定(如 I/O 密集型任务可设为 CPU 核心数 2)‌。 最大线程数 (maxPoolSize)‌ 作用‌:…...

如何使用 qrcode.react生成二维码

qrcode.react&#xff08;查看官网&#xff09; 是一个用于 React 应用的 QR 码生成组件。下面是如何使用它的详细指南&#xff1a; 1、安装 npm install qrcode.react # 或者 yarn add qrcode.react2、基本用法 import {QRCodeSVG} from qrcode.react;const myPage () >…...

用VScode来编写前后端——构建基础框架

前言 我写这一个板块的原因是我参加了我们学校的新生项目课&#xff0c;需要创立一个系统&#xff0c;我们小组选的标题的基于计算机视觉的商品识别系统&#xff0c;那么我们需要一个网站来展示我们的功能&#xff0c;故写这些来记录一下自己&#xff0c;大家如果有什么问题的话…...