summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/image/qimage.cpp1
-rw-r--r--src/gui/image/qpixmap_raster.cpp8
2 files changed, 6 insertions, 3 deletions
diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp
index 481cb37c8c..7287f54e74 100644
--- a/src/gui/image/qimage.cpp
+++ b/src/gui/image/qimage.cpp
@@ -1126,6 +1126,7 @@ QImage QImage::copy(const QRect& r) const
image.d->colortable = d->colortable;
image.d->dpmx = d->dpmx;
image.d->dpmy = d->dpmy;
+ image.d->devicePixelRatio = d->devicePixelRatio;
image.d->offset = d->offset;
image.d->has_alpha_clut = d->has_alpha_clut;
image.d->text = d->text;
diff --git a/src/gui/image/qpixmap_raster.cpp b/src/gui/image/qpixmap_raster.cpp
index 8d5891aae2..302945dbf8 100644
--- a/src/gui/image/qpixmap_raster.cpp
+++ b/src/gui/image/qpixmap_raster.cpp
@@ -240,12 +240,14 @@ QImage QRasterPlatformPixmap::toImage(const QRect &rect) const
QRect clipped = rect.intersected(QRect(0, 0, w, h));
const uint du = uint(d);
- if ((du % 8 == 0) && (((uint(clipped.x()) * du)) % 32 == 0))
- return QImage(image.scanLine(clipped.y()) + clipped.x() * (du / 8),
+ if ((du % 8 == 0) && (((uint(clipped.x()) * du)) % 32 == 0)) {
+ QImage newImage(image.scanLine(clipped.y()) + clipped.x() * (du / 8),
clipped.width(), clipped.height(),
image.bytesPerLine(), image.format());
- else
+ return newImage;
+ } else {
return image.copy(clipped);
+ }
}
QPaintEngine* QRasterPlatformPixmap::paintEngine() const