X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fpdf%2FGFXOutputDev.cc;h=c88a0357ac96f8b8857f8a82263f3cc7c297d91b;hb=ca3620f4bcd801624ac2232e6e20d0eec5c424e9;hp=ca3abbd75174b9708e9994ce353aa1f5a67fb9b9;hpb=ff9dc906d71bd3d5b5b97f5201122f59fd95c99f;p=swftools.git diff --git a/lib/pdf/GFXOutputDev.cc b/lib/pdf/GFXOutputDev.cc index ca3abbd..c88a035 100644 --- a/lib/pdf/GFXOutputDev.cc +++ b/lib/pdf/GFXOutputDev.cc @@ -1083,8 +1083,6 @@ void GFXOutputDev::strokeGfxline(GfxState *state, gfxline_t*line, int flags) this->transformXY(state, 1, 1, &tx2, &ty2); double f = sqrt(sqr(tx2-tx1)+sqr(ty2-ty1)) / SQRT2; - f = 1.0; //disable dash length transform for now - msg(" %d dashes", this->dashLength); msg(" | phase: %f", this->dashStart); for(t=0;tdashLength;t++) { @@ -1203,7 +1201,8 @@ void GFXOutputDev::clipToStrokePath(GfxState *state) gfxline_t*line= gfxPath_to_gfxline(state, path, 0, user_movex + clipmovex, user_movey + clipmovey); if(getLogLevel() >= LOGLEVEL_TRACE) { - msg(" cliptostrokepath"); + double width = state->getTransformedLineWidth(); + msg(" cliptostrokepath width=%f", width); dump_outline(line); } @@ -1964,8 +1963,8 @@ unsigned char* antialize(unsigned char*data, int width, int height, int newwidth unsigned char*newdata; int x,y; newdata= (unsigned char*)malloc(newwidth*newheight); - double fx = (double)(width)/newwidth; - double fy = (double)(height)/newheight; + double fx = ((double)width)/newwidth; + double fy = ((double)height)/newheight; double px = 0; int blocksize = (int)(8192/(fx*fy)); int r = 8192*256/palettesize; @@ -1973,17 +1972,21 @@ unsigned char* antialize(unsigned char*data, int width, int height, int newwidth double ex = px + fx; int fromx = (int)px; int tox = (int)ex; - int xweight1 = (int)(((fromx+1)-px)*256); + int xweight1 = (int)((1-(px-fromx))*256); int xweight2 = (int)((ex-tox)*256); double py =0; for(y=0;y=width) + tox = width-1; + if(toy>=height) + toy = height-1; for(xx=fromx;xx<=tox;xx++) for(yy=fromy;yy<=toy;yy++) { int b = 1-data[width*yy+xx]; @@ -2141,10 +2144,10 @@ void GFXOutputDev::drawGeneralImage(GfxState *state, Object *ref, Stream *str, return; } - this->transformXY(state, 0, 1, &x1, &y1); - this->transformXY(state, 0, 0, &x2, &y2); - this->transformXY(state, 1, 0, &x3, &y3); - this->transformXY(state, 1, 1, &x4, &y4); + this->transformXY(state, 0, 1, &x1, &y1); x1 = (int)(x1);y1 = (int)(y1); + this->transformXY(state, 0, 0, &x2, &y2); x2 = (int)(x2);y2 = (int)(y2); + this->transformXY(state, 1, 0, &x3, &y3); x3 = (int)(x3);y3 = (int)(y3); + this->transformXY(state, 1, 1, &x4, &y4); x4 = (int)(x4);y4 = (int)(y4); if(!pbminfo && !(str->getKind()==strDCT)) { if(!type3active) { @@ -2200,7 +2203,7 @@ void GFXOutputDev::drawGeneralImage(GfxState *state, Object *ref, Stream *str, delete imgStr; return; } - + width = realwidth; height = realheight; delete[] pic; @@ -2216,6 +2219,7 @@ void GFXOutputDev::drawGeneralImage(GfxState *state, Object *ref, Stream *str, pal[t].b = colToByte(rgb.b); pal[t].a = (unsigned char)(t*r); } + } gfxcolor_t*pic2 = new gfxcolor_t[width*height];