X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=pdf2swf%2Fswfoutput.cc;h=1890e97f4048835b112b497f63bf8be6ad6fcc9b;hb=6b6dbbd49f51d7ca661a4ee8eba96426f288b177;hp=40700cd8ed4338574e52af845ce59f9d34ffff4c;hpb=e71a59a0d6ee34a682c0b4f4318724d5862f8908;p=swftools.git diff --git a/pdf2swf/swfoutput.cc b/pdf2swf/swfoutput.cc index 40700cd..1890e97 100644 --- a/pdf2swf/swfoutput.cc +++ b/pdf2swf/swfoutput.cc @@ -441,7 +441,7 @@ void drawchar(struct swfoutput*obj, SWFFont*font, char*character, swfmatrix*m) char* charname = character; if(!outline) { - logf("Didn't find %s in current charset (%s)", + logf(" Didn't find %s in current charset (%s)", character,font->getName()); return; } @@ -1020,22 +1020,17 @@ void swfoutput_endclip(swfoutput*obj) PlaceObject(cliptags[clippos],clipshapes[clippos],clipdepths[clippos],NULL,NULL,NULL,depth++); } -void swfoutput_drawimagefile(struct swfoutput*, char*filename, int sizex,int sizey, + +void drawimage(struct swfoutput*obj, int bitid, int sizex,int sizey, double x1,double y1, double x2,double y2, double x3,double y3, double x4,double y4) { - if(shapeid>=0) - endshape(); - if(textid>=0) - endtext(); - RGBA rgb; SRECT r; int lsid=0; int fsid; - int bitid; struct plotxy p1,p2,p3,p4; int myshapeid; double xmax=x1,ymax=y1,xmin=x1,ymin=y1; @@ -1068,14 +1063,7 @@ void swfoutput_drawimagefile(struct swfoutput*, char*filename, int sizex,int siz m.tx = (int)(x1*20); m.ty = (int)(y1*20); - - bitid = ++currentswfid; - /* bitmap */ - tag = InsertTag(tag,ST_DEFINEBITSJPEG2); - SetU16(tag, bitid); - SetJPEGBits(tag, filename, jpegquality); - /* shape */ myshapeid = ++currentswfid; tag = InsertTag(tag,ST_DEFINESHAPE); @@ -1112,3 +1100,77 @@ void swfoutput_drawimagefile(struct swfoutput*, char*filename, int sizex,int siz ObjectPlace(tag,myshapeid,/*depth*/depth++,NULL,NULL,NULL); } +int swfoutput_drawimagejpeg(struct swfoutput*obj, char*filename, int sizex,int sizey, + double x1,double y1, + double x2,double y2, + double x3,double y3, + double x4,double y4) +{ + if(shapeid>=0) + endshape(); + if(textid>=0) + endtext(); + + int bitid = ++currentswfid; + tag = InsertTag(tag,ST_DEFINEBITSJPEG2); + SetU16(tag, bitid); + SetJPEGBits(tag, filename, jpegquality); + + drawimage(obj, bitid, sizex, sizey, x1,y1,x2,y2,x3,y3,x4,y4); + return bitid; +} + +int swfoutput_drawimagelossless(struct swfoutput*obj, RGBA*mem, int sizex,int sizey, + double x1,double y1, + double x2,double y2, + double x3,double y3, + double x4,double y4) +{ + if(shapeid>=0) + endshape(); + if(textid>=0) + endtext(); + + int bitid = ++currentswfid; + tag = InsertTag(tag,ST_DEFINEBITSLOSSLESS); + SetU16(tag, bitid); + SetLosslessBits(tag,sizex,sizey,mem, BMF_32BIT); + + drawimage(obj, bitid, sizex, sizey, x1,y1,x2,y2,x3,y3,x4,y4); + return bitid; +} + +int swfoutput_drawimagelossless256(struct swfoutput*obj, U8*mem, RGBA*pal, int sizex,int sizey, + double x1,double y1, + double x2,double y2, + double x3,double y3, + double x4,double y4) +{ + if(shapeid>=0) + endshape(); + if(textid>=0) + endtext(); + + int bitid = ++currentswfid; + tag = InsertTag(tag,ST_DEFINEBITSLOSSLESS2); + SetU16(tag, bitid); + SetLosslessBitsIndexed(tag,sizex,sizey,mem, pal, 256); + + drawimage(obj, bitid, sizex, sizey, x1,y1,x2,y2,x3,y3,x4,y4); + return bitid; +} + +void swfoutput_drawimageagain(struct swfoutput*obj, int id, int sizex,int sizey, + double x1,double y1, + double x2,double y2, + double x3,double y3, + double x4,double y4) +{ + if(shapeid>=0) + endshape(); + if(textid>=0) + endtext(); + + drawimage(obj, id, sizex, sizey, x1,y1,x2,y2,x3,y3,x4,y4); +} +