qt6 c++ 成功发送并接收JPG图片文件文件

栏目:日记 作者:rice 发表时间:2025-08-30 13:01:27阅读:8次

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();

    }

}