49 if (
q->format().isEmpty())
55 QBuffer *buf = qobject_cast<QBuffer *>(device);
58 res = r.load(QByteArray::fromRawData(ba.constData() + buf->pos(), ba.size() - buf->pos()));
61 }
else if (
q->format() ==
"svgz") {
62 res = r.load(device->readAll());
65 xmlReader.setDevice(device);
66 res = r.load(&xmlReader);
70 defaultSize = r.defaultSize();
108 bool xform = (d->clipRect.isValid() || d->scaledSize.isValid() || d->scaledClipRect.isValid());
109 QSize finalSize = d->defaultSize;
111 if (xform && !d->defaultSize.isEmpty()) {
112 bounds = QRectF(QPointF(0,0), QSizeF(d->defaultSize));
115 if (d->clipRect.isValid()) {
116 tr1 = -d->clipRect.topLeft();
117 finalSize = d->clipRect.size();
119 if (d->scaledSize.isValid()) {
120 sc = QSizeF(qreal(d->scaledSize.width()) / finalSize.width(),
121 qreal(d->scaledSize.height()) / finalSize.height());
122 finalSize = d->scaledSize;
124 if (d->scaledClipRect.isValid()) {
125 tr2 = -d->scaledClipRect.topLeft();
126 finalSize = d->scaledClipRect.size();
129 t.translate(tr2.x(), tr2.y());
130 t.scale(sc.width(), sc.height());
131 t.translate(tr1.x(), tr1.y());
132 bounds = t.mapRect(bounds);
134 if (finalSize.isEmpty()) {
137 if (qMax(finalSize.width(), finalSize.height()) > 0xffff)
139 if (!QImageIOHandler::allocateImage(finalSize, QImage::Format_ARGB32_Premultiplied, image))
141 image->fill(d->backColor.rgba());
143 d->r.render(&p, bounds);