34 lines
708 B
C++
34 lines
708 B
C++
#include <QDebug>
|
|
#include <QPainter>
|
|
#include <QSize>
|
|
|
|
#include <imgwriter.h>
|
|
#pragma execution_character_set("utf-8")
|
|
|
|
namespace LAMPMainWidget
|
|
{
|
|
ImgWriter::ImgWriter(QString file, const QSize& size)
|
|
: mFile(std::move(file))
|
|
{
|
|
QImage img{size, QImage::Format_RGB32};
|
|
if (img.isNull()) {
|
|
qCritical() << "存储图像创建失败";
|
|
return;
|
|
}
|
|
|
|
Q_UNUSED(img.save(mFile, "TIFF"));
|
|
}
|
|
|
|
bool
|
|
ImgWriter::write(const QPoint& pos, const QByteArray& data) const
|
|
{
|
|
QImage img{mFile};
|
|
QPainter painter{&img};
|
|
auto tile = QImage::fromData(data).convertToFormat(QImage::Format_RGB32);
|
|
|
|
painter.drawImage(pos, tile);
|
|
|
|
return img.save(mFile, "TIFF");
|
|
}
|
|
}
|