X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fpdf%2FGFXOutputDev.cc;h=408e010e044b37cba0c57425ddcc60eea72761cd;hb=e55e1d1989b2c3e09bddeb06643ea77194657bc7;hp=253750373f7df0bcae0aa92e1c325bafab9b75f1;hpb=5c77aa3bd8e6dd7ea10ca7c39c70cefe535895ee;p=swftools.git diff --git a/lib/pdf/GFXOutputDev.cc b/lib/pdf/GFXOutputDev.cc index 2537503..408e010 100644 --- a/lib/pdf/GFXOutputDev.cc +++ b/lib/pdf/GFXOutputDev.cc @@ -336,7 +336,7 @@ DisplayFontParam *GFXGlobalParams::getDisplayFont(GString *fontName) int bestlen = 0x7fffffff; const char*bestfilename = 0; - fontfile_t*f = 0; + fontfile_t*f = global_fonts; while(f) { if(strstr(f->filename, name)) { if(f->len < bestlen) { @@ -2402,10 +2402,14 @@ void GFXOutputDev::paintTransparencyGroup(GfxState *state, double *bbox) } gfxresult_t*grouprecording = states[statepos].grouprecording; - - if(state->getBlendMode() == gfxBlendNormal) { + + int blendmode = state->getBlendMode(); + if(blendmode == gfxBlendNormal || blendmode == gfxBlendMultiply) { + int alpha = state->getFillOpacity()*255; + if(blendmode == gfxBlendMultiply && alpha>200) + alpha = 128; gfxdevice_t ops; - gfxdevice_ops_init(&ops, this->device, (unsigned char)(state->getFillOpacity()*255)); + gfxdevice_ops_init(&ops, this->device, alpha); gfxresult_record_replay(grouprecording, &ops); ops.finish(&ops); }