CCIMXDesktop
 
Loading...
Searching...
No Matches
ImageSinker.h
1#ifndef IMAGESINKER_H
2#define IMAGESINKER_H
3#include "DataSinker.h"
4#include <QImage>
5#include <QObject>
6#include <QSaveFile>
7
8class ImageSinker : public DataSinker {
9public:
10 explicit ImageSinker(const QString& baseSavePath);
11 ~ImageSinker() override;
12
13 QString provide_name() override;
14 void consume_name(const QString& name) override;
15 qint64 id_generator() override;
16 QByteArray requestChunkForEncoding(quint64 offset, quint64 bytesForRead) override;
17 quint64 size() override;
18 bool receiveEnd() override;
19 bool consumeChunkBuffer(const QByteArray& chunk) override;
20 void sendEnd() override;
21 void initMemoryBuffer(const QByteArray& chunk) override;
22 QImage getImage() const; // 获取解析后的图像
23 void resetSelf() override;
24
25private:
26 QString baseSavePath_;
27 QString saveFilePath_;
28 QSaveFile saveFile_;
29 QByteArray buffer_; // 用于累积图像数据
30 QImage image_;
31 qint64 fileSize_ = 0;
32 bool isReceiving_ = false;
33};
34
35#endif // IMAGESINKER_H
Definition DataSinker.h:8
Definition ImageSinker.h:8