mirror of https://github.com/status-im/qzxing.git
45 lines
1.3 KiB
C++
45 lines
1.3 KiB
C++
#include "imagehandler.h"
|
|
#include <QGraphicsObject>
|
|
#include <QImage>
|
|
#include <QPainter>
|
|
#include <QStyleOptionGraphicsItem>
|
|
#include <QDebug>
|
|
|
|
ImageHandler::ImageHandler(QObject *parent) :
|
|
QObject(parent)
|
|
{
|
|
}
|
|
|
|
QImage ImageHandler::extractQImage(QObject *imageObj,
|
|
const double offsetX, const double offsetY,
|
|
const double width, const double height)
|
|
{
|
|
QGraphicsObject *item = qobject_cast<QGraphicsObject*>(imageObj);
|
|
|
|
if (!item ) {
|
|
qDebug() << "Item is NULL";
|
|
return QImage();
|
|
}
|
|
|
|
QImage img(item->boundingRect().size().toSize(), QImage::Format_RGB32);
|
|
img.fill(QColor(255, 255, 255).rgb());
|
|
QPainter painter(&img);
|
|
QStyleOptionGraphicsItem styleOption;
|
|
item->paint(&painter, &styleOption);
|
|
|
|
if(offsetX == 0 && offsetY == 0 && width == 0 && height == 0)
|
|
return img;
|
|
else
|
|
{
|
|
return img.copy(offsetX, offsetY, width, height);
|
|
}
|
|
}
|
|
|
|
void ImageHandler::save(QObject *imageObj, const QString &path,
|
|
const double offsetX, const double offsetY,
|
|
const double width, const double height)
|
|
{
|
|
QImage img = extractQImage(imageObj, offsetX, offsetY, width, height);
|
|
img.save(path);
|
|
}
|