qt6 c++ 成功发送并接收JPG图片文件文件
qt6 c++ 成功发送并接收JPG图片文件文件
在百度AI里搜索:Qt6 C++实现JPG图片缩放、文本前缀添加及网络通信
搜到一篇百度AI文件,使用该文章的方法成功压缩图片,并发送和接收图片。
该文章的第三个函数比较重要。先使用该函数发送图片文件。然后接收数据的时候,直接以文件的形式接收就可以,接收后的图片文件可以正常打开。
该函数如下所示:
#include <QTcpSocket>
#include <QDebug>
void sendImageData(const QString &filePath, const QString &host, quint16 port) {
QTcpSocket socket;
socket.connectToHost(host, port);
if (socket.waitForConnected(3000)) {
QImage image = scaleImage(filePath, 800);
if (!image.isNull()) {
QByteArray imageData;
QBuffer buffer(&imageData);
buffer.open(QIODevice::WriteOnly);
image.save(&buffer, "JPG");
QByteArray data = addPrefixToImageData(imageData, "IMAGE_PREFIX:");
socket.write(data);
qDebug() << "Data sent:" << data.size() << "bytes";
}
} else {
qDebug() << "Connection failed:" << socket.errorString();
}
}
