From a1587574bba2fe7cffe40aa1bad0fe84aed23825 Mon Sep 17 00:00:00 2001 From: Matthias Kramm Date: Tue, 2 Feb 2010 11:48:35 -0800 Subject: [PATCH 1/1] fixed staircase issue with poly2bitmap --- lib/devices/swf.c | 10 +++++++++- lib/pdf/BitmapOutputDev.cc | 6 +++--- spec/layers2.pdf | Bin 1672 -> 1693 bytes spec/layers2.py | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/devices/swf.c b/lib/devices/swf.c index 3be81d5..af5d284 100644 --- a/lib/devices/swf.c +++ b/lib/devices/swf.c @@ -102,6 +102,7 @@ typedef struct _swfoutput_internal int config_storeallcharacters; int config_enablezlib; int config_insertstoptag; + int config_showimages; int config_watermark; int config_noclips; int config_flashversion; @@ -2120,6 +2121,8 @@ int swf_setparameter(gfxdevice_t*dev, const char*name, const char*value) i->config_dumpfonts = atoi(value); } else if(!strcmp(name, "animate")) { i->config_animate = atoi(value); + } else if(!strcmp(name, "showimages")) { + i->config_showimages = atoi(value); } else if(!strcmp(name, "disablelinks")) { i->config_disablelinks = atoi(value); } else if(!strcmp(name, "simpleviewer")) { @@ -2359,6 +2362,11 @@ static void swf_fillbitmap(gfxdevice_t*dev, gfxline_t*line, gfximage_t*img, gfxm SHAPE*shape; swf_ShapeNew(&shape); int fsid = swf_ShapeAddBitmapFillStyle(shape,&m,bitid,1); + int lsid = 0; + if(i->config_showimages) { + RGBA pink = {255,255,0,255}; + lsid = swf_ShapeAddLineStyle(shape, 20, &pink); + } swf_SetU16(i->tag, myshapeid); SRECT r = gfxline_getSWFbbox(line); r = swf_ClipRect(i->pagebbox, r); @@ -2366,7 +2374,7 @@ static void swf_fillbitmap(gfxdevice_t*dev, gfxline_t*line, gfximage_t*img, gfxm swf_SetShapeStyles(i->tag,shape); swf_ShapeCountBits(shape,NULL,NULL); swf_SetShapeBits(i->tag,shape); - swf_ShapeSetAll(i->tag,shape,UNDEFINED_COORD,UNDEFINED_COORD,0,fsid,0); + swf_ShapeSetAll(i->tag,shape,UNDEFINED_COORD,UNDEFINED_COORD,lsid,fsid,0); i->swflastx = i->swflasty = UNDEFINED_COORD; drawgfxline(dev, line, 1); swf_ShapeSetEnd(i->tag); diff --git a/lib/pdf/BitmapOutputDev.cc b/lib/pdf/BitmapOutputDev.cc index 6eaea6b..25c4c81 100644 --- a/lib/pdf/BitmapOutputDev.cc +++ b/lib/pdf/BitmapOutputDev.cc @@ -226,10 +226,10 @@ void BitmapOutputDev::flushBitmap() } } else { for(x=0;x>(x&7)))) { + if(!(ain2[(x+xmin)/8]&(0x80>>((x+xmin)&7)))) { /* cut away pixels that we don't remember drawing (i.e., that are - not in the monochrome bitmap. Prevents some "hairlines" showing - up to the left and right of bitmaps */ + not in the monochrome bitmap). Prevents some "hairlines" showing + up to the left and right of bitmaps. */ out[x].r = 0;out[x].g = 0;out[x].b = 0;out[x].a = 0; } else { /* according to endPage()/compositeBackground() in xpdf/SplashOutputDev.cc, we diff --git a/spec/layers2.pdf b/spec/layers2.pdf index 5b9a234266fc8323c27f850ed747dc9aea26c142..faceaebf7c734eaeb3e0a55e7676343467a11b5d 100644 GIT binary patch delta 1061 zcmeC+oy$9+vfi>t#*pXC*RI+|ZuWzZW&btLStI=4-e4DJQCMSEw1klR;zr5JliuLqXAf_8O4|}#$swedDOy6i+-zI$Fnvu+3U8Wmh zcJDT<^<qar&xejJDb;71e0a^&cicQP`RqPxK~~Z8o(#876yFOdR8KIA z-1F!T7gO5g3k7ZRTPD{ec^YI zma?96mT%GF>D3>f9$g(`uUwyJA39;?$8EwN%j6Vzf;8<3^4bMh~4X?iJiH zV`5~(jZ~H`it$3bIXwENT>x|LiPvXDLY6Phy?XkMO#989+Vw5B z*xHYB`X$FKk$S8Y&Y-B;up-cVmTYBnMZfkuGcTK5_smMy11{U-8n*4x_Aorp@Ig?ooYpu+$9sedMl$Rg9pZn@nI~7_*^LE_J71|*Pm|hx{c*|q&cbti&~O) zPFrx}mKU#e|Lho!b6>v1UA}D2|4BRU$K&TsC;!y=0xj&G}q4cHbuC ze^I-Y+_aqkmjC|m#bM71y_BQAe`~(AuUTKp(({+^rTj^C!M`2MPgd;w?B{22p?b0B z6MKR5c5}HWx6jwxbf5S&c@48PlZnaXlgz2iCYHvV4O!e7#mtNq3_w63Pk{@}FfcSU zGn(ATs%B?yi7sVeX=#BjW@uoHX@s$%`Q%Tmma$GImagU|MrLj%&c;rr21cf)ZZ4(< t&W^^8PHrydW-fL%1XaXx+1YUwmn0UIR1~GAaTyw$nQ*D9y863u0RU9s%H99~ delta 1040 zcmbQs+rc}bvfg`|j3LME^O~vdCzcaX5Vz%?Yl1D<;rkB?a-)NXncv9KF`rp5Q zS^xCU%l}vZ(Zc8;dnAbai(*j2`}Kx$b5Dma7pU1+SL?fXTd3L5qVm~%Our6pduYy) zV10MtuD3EwH)h?QA}Pak>raNQg+FIP^tDomQ*n?{PH|~!Z)q;-o9#sQ%VUZS8#>&yB3_5);=wLQ_Xu->HZLInMiIc z!%do-jD51h3g@VbzA29itzWWg;y4PV*2U?N;v|(n4IieRVoBPrVtvEC z^uvy|hXt*xWf?r4j&%PCEH)9};5W<|cl!L>(qvJJHzO}!nrZm4`&Z*`(s z;Eu%Od(#AOJ}~QkmOJf4YSg#NciYc$lz*BQ^=7WEwUxhViSyJay96)fFLjx=Pbl)F zc3$zPu4EQl$3;T6AB7el-?sYriJMW+ax$~Oo1Ncvc3V(eZ2gH3afO@aPg=}zfN8~> zgG^j!8Ecoq|N{?kH|L!}v z_cc?`H1UKbH?H?C6lH$Jy+5o@WX-e$)AmJ&Tc=gMW-!X$dPeHOr4_SGvL-a&+;wqP zGE2BpmFgsBDWN{il>DO}ZL%|1!eqo3i$ zKiQ5Swk{BgXPs$ttN8JzYRX#2~@YU7Sa{+&#jd4V6pyisn<5sJ;Dn{yETzOaj z)kb!Clc`HWCxv-NE&awEI_a@tH+w*bUE_~!kNEyL$Sk?@QK`H5A7g^#@n@3{GD|ZV z8Be~)oXTu$Y_Qpl#hp>i#7Mya1QhZVxWEhpLqik8$%|Rl>`X1tr3@_1&C$gS4Gb}j zFtRk8%+6*R>uTv}XlCSQZf<05WNK*Q>}cX@Y-nm~VPxWLX5{Q_VP`{7MJ$({9anKl XVo^y&QED2Op|OcEm#V6(zZ(|-F6+VV diff --git a/spec/layers2.py b/spec/layers2.py index 91402fd..f0ade05 100644 --- a/spec/layers2.py +++ b/spec/layers2.py @@ -30,7 +30,7 @@ for i in range(100): PDF_lineto(p, x+5, y) PDF_stroke(p) -PDF_setrgbcolor_fill(p, 1.0, 0, 0) +PDF_setrgbcolor_fill(p, 0.5, 0.5, 1.0) x,y = 100,100 def rect(x,y): PDF_moveto(p, x,y) -- 1.7.10.4