summaryrefslogtreecommitdiff
path: root/qt
diff options
context:
space:
mode:
authorAlbert Astals Cid <aacid@kde.org>2006-05-21 18:14:15 +0000
committerAlbert Astals Cid <aacid@kde.org>2006-05-21 18:14:15 +0000
commit7d4bb0533f88f06449ebd64c1220d0b75001937d (patch)
treeb261f0be49fc92922f609b52273122e278629e50 /qt
parent655af1e0126ca96d75c9c718d7d8f928c898b1f6 (diff)
fix all is blue issue on ppc machines
Diffstat (limited to 'qt')
-rw-r--r--qt/poppler-page.cc17
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();