diff options
author | Albert Astals Cid <aacid@kde.org> | 2006-05-21 18:14:15 +0000 |
---|---|---|
committer | Albert Astals Cid <aacid@kde.org> | 2006-05-21 18:14:15 +0000 |
commit | 7d4bb0533f88f06449ebd64c1220d0b75001937d (patch) | |
tree | b261f0be49fc92922f609b52273122e278629e50 /qt | |
parent | 655af1e0126ca96d75c9c718d7d8f928c898b1f6 (diff) |
fix all is blue issue on ppc machines
Diffstat (limited to 'qt')
-rw-r--r-- | qt/poppler-page.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/qt/poppler-page.cc b/qt/poppler-page.cc index d0395aa3..c40337a4 100644 --- a/qt/poppler-page.cc +++ b/qt/poppler-page.cc @@ -77,6 +77,23 @@ QImage Page::renderToImage(double xres, double yres) const int bw = output_dev->getBitmap()->getWidth(); int bh = output_dev->getBitmap()->getHeight(); SplashColorPtr dataPtr = output_dev->getBitmap()->getDataPtr(); + + if (QImage::BigEndian == QImage::systemByteOrder()) + { + uchar c; + int count = bw * bh * 4; + for (int k = 0; k < count; k += 4) + { + c = dataPtr[k]; + dataPtr[k] = dataPtr[k+3]; + dataPtr[k+3] = c; + + c = dataPtr[k+1]; + dataPtr[k+1] = dataPtr[k+2]; + dataPtr[k+2] = c; + } + } + // construct a qimage SHARING the raw bitmap data in memory QImage img( dataPtr, bw, bh, 32, 0, 0, QImage::IgnoreEndian ); img = img.copy(); |