use thumbnails for now...

This commit is contained in:
Gary Wang 2020-07-05 18:09:45 +08:00
parent 914c270e87
commit 0a2d50fec4

View File

@ -2,6 +2,10 @@
#include "sai.hpp" #include "sai.hpp"
#include <QFile>
#include <QDebug>
#include <QImage>
SAIHandler::SAIHandler() SAIHandler::SAIHandler()
{ {
@ -18,8 +22,31 @@ bool SAIHandler::canRead() const
bool SAIHandler::read(QImage *image) bool SAIHandler::read(QImage *image)
{ {
Q_UNUSED(image) QFile * file = qobject_cast<QFile*>(device());
if (!file) {
return false; return false;
}
sai::Document saiDoc(file->fileName().toUtf8().data());
if (!saiDoc.IsOpen()) {
qDebug() << "isOpen false";
return false;
}
std::uint32_t width, height;
std::unique_ptr<std::uint8_t[]> PixelData;
std::tie(PixelData, width, height) = saiDoc.GetThumbnail();
// std::uint32_t aw, ah;
// std::tie(aw, ah) = saiDoc.GetCanvasSize();
// qDebug() << width << height << aw << ah;
if( PixelData == nullptr || !width || !height ) {
return false;
}
const unsigned char * bytes = PixelData.get();
QImage img(bytes, static_cast<int>(width), static_cast<int>(height), QImage::Format_RGB32);
*image = img;
return true;
} }
bool SAIHandler::write(const QImage &image) bool SAIHandler::write(const QImage &image)