52 if (
q->format().isEmpty())
58 QBuffer *buf = qobject_cast<QBuffer *>(device);
61 res = r.load(QByteArray::fromRawData(ba.constData() + buf->pos(), ba.size() - buf->pos()));
64 }
else if (
q->format() ==
"svgz") {
65 res = r.load(device->readAll());
68 xmlReader.setDevice(device);
69 res = r.load(&xmlReader);
73 defaultSize = r.defaultSize();
76 const int duration = r.animationDuration();
77 const int fps = r.framesPerSecond();
78 frameCount = qMax(1,
static_cast<
int>(qint64(duration) * fps / 1000));
128 if (!d->r.animated()) {
138 bool xform = (d->clipRect.isValid() || d->scaledSize.isValid() || d->scaledClipRect.isValid());
139 QSize finalSize = d->defaultSize;
141 if (xform && !d->defaultSize.isEmpty()) {
142 bounds = QRectF(QPointF(0,0), QSizeF(d->defaultSize));
145 if (d->clipRect.isValid()) {
146 tr1 = -d->clipRect.topLeft();
147 finalSize = d->clipRect.size();
149 if (d->scaledSize.isValid()) {
150 sc = QSizeF(qreal(d->scaledSize.width()) / finalSize.width(),
151 qreal(d->scaledSize.height()) / finalSize.height());
152 finalSize = d->scaledSize;
154 if (d->scaledClipRect.isValid()) {
155 tr2 = -d->scaledClipRect.topLeft();
156 finalSize = d->scaledClipRect.size();
159 t.translate(tr2.x(), tr2.y());
160 t.scale(sc.width(), sc.height());
161 t.translate(tr1.x(), tr1.y());
162 bounds = t.mapRect(bounds);
164 if (finalSize.isEmpty()) {
167 if (qMax(finalSize.width(), finalSize.height()) > 0xffff)
169 if (!QImageIOHandler::allocateImage(finalSize, QImage::Format_ARGB32_Premultiplied, image))
171 image->fill(d->backColor.rgba());
173 d->r.render(&p, bounds);
221 d->clipRect = value.toRect();
224 d->scaledSize = value.toSize();
227 d->scaledClipRect = value.toRect();
229 case BackgroundColor:
230 d->backColor = value.value<QColor>();