From d30ede6864c10f35819e471dc50ba5d3cb6bc019 Mon Sep 17 00:00:00 2001 From: kramm <kramm> Date: Sun, 9 Dec 2007 19:04:06 +0000 Subject: [PATCH] added getVectorAntialias, which is necessary so that setVectorAntialias will be called --- lib/pdf/BitmapOutputDev.cc | 8 +++++++- lib/pdf/BitmapOutputDev.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/pdf/BitmapOutputDev.cc b/lib/pdf/BitmapOutputDev.cc index b9b2124..0b49c2c 100644 --- a/lib/pdf/BitmapOutputDev.cc +++ b/lib/pdf/BitmapOutputDev.cc @@ -79,6 +79,10 @@ BitmapOutputDev::~BitmapOutputDev() } +GBool BitmapOutputDev::getVectorAntialias() +{ + return this->rgbdev->getVectorAntialias(); +} void BitmapOutputDev::setVectorAntialias(GBool vaa) { this->rgbdev->setVectorAntialias(vaa); @@ -190,11 +194,13 @@ void BitmapOutputDev::flush() gfxcolor_t*out = &img->data[y*rangex]; Guchar*ain = &alpha[(y+ymin)*width+xmin]; for(x=0;x<rangex;x++) { + /* according to endPage()/compositeBackground() in xpdf/SplashOutputDev.cc, we + have to premultiply alpha (mix background and pixel according to the alpha channel). + */ out[x].r = (in[x*3+0]*ain[x])/255; out[x].g = (in[x*3+1]*ain[x])/255; out[x].b = (in[x*3+2]*ain[x])/255; out[x].a = ain[x]; - //out[x].a = ain[x]?255:0; } } /* transform bitmap rectangle to "device space" */ diff --git a/lib/pdf/BitmapOutputDev.h b/lib/pdf/BitmapOutputDev.h index 62bca6d..23df08d 100644 --- a/lib/pdf/BitmapOutputDev.h +++ b/lib/pdf/BitmapOutputDev.h @@ -178,6 +178,7 @@ public: virtual void processLink(Link *link, Catalog *catalog); virtual void setVectorAntialias(GBool vaa); + virtual GBool getVectorAntialias(); private: void flush(); -- 1.7.10.4