f.mashup.cc (fotoxx-22.30) | : | f.mashup.cc (fotoxx-22.35) | ||
---|---|---|---|---|
skipping to change at line 492 | skipping to change at line 492 | |||
if (ii == 3 && PRscale == 1.0) project_rescale(4.0); // 1x -> 4x | if (ii == 3 && PRscale == 1.0) project_rescale(4.0); // 1x -> 4x | |||
if (ii == 4 && PRscale > 1.0) project_rescale(1.0); // [reset] back to 1x | if (ii == 4 && PRscale > 1.0) project_rescale(1.0); // [reset] back to 1x | |||
return 1; | return 1; | |||
} | } | |||
if (strmatch(event,"done")) // project done | if (strmatch(event,"done")) // project done | |||
{ | { | |||
zdialog_free(zd); // kill dialog | zdialog_free(zd); // kill dialog | |||
freeMouse(); | freeMouse(); | |||
if (navi::gallerytype == GDIR) { | if (navi::gallerytype == FOLDER) { | |||
file2 = zstrdup(navi::galleryname,"mashup",108); | file2 = zstrdup(navi::galleryname,"mashup",108); | |||
cc = strlen(file2); | cc = strlen(file2); | |||
strncatv(file2,cc+108,"/",projectname,".png",null); // gallery/projectname.png | strncatv(file2,cc+108,"/",projectname,".png",null); // gallery/projectname.png | |||
} | } | |||
else { | else { | |||
file2 = zstrdup(projectname,"mashup",6); // projectname.png | file2 = zstrdup(projectname,"mashup",6); // projectname.png | |||
strcat(file2,".png"); | strcat(file2,".png"); | |||
} | } | |||
file = zgetfile("save Mashup output file",MWIN,"save",file2); | file = zgetfile("save Mashup output file",MWIN,"save",file2); | |||
skipping to change at line 613 | skipping to change at line 613 | |||
pp = strrchr(projectfile,'/'); // project name from file name | pp = strrchr(projectfile,'/'); // project name from file name | |||
strncpy0(projectname,pp+1,100); | strncpy0(projectname,pp+1,100); | |||
// read project file and validate all data | // read project file and validate all data | |||
fid = fopen(projectfile,"r"); // open project file | fid = fopen(projectfile,"r"); // open project file | |||
if (! fid) goto failure; | if (! fid) goto failure; | |||
pp = fgets_trim(buff,XFCC,fid); // read layout record | pp = fgets_trim(buff,XFCC,fid); // read layout record | |||
if (! pp) { Plog(1,"no layout \n"); goto badproject; } | if (! pp) { Plog(0,"no layout \n"); goto badproject; } | |||
if (strmatchN(pp,"layout:",7)) // layout: /.../filename.jpg | if (strmatchN(pp,"layout:",7)) // layout: /.../filename.jpg | |||
{ | { | |||
pp += 7; | pp += 7; | |||
while (*pp == ' ') pp++; | while (*pp == ' ') pp++; | |||
strncpy0(layoutfile,pp,XFCC); | strncpy0(layoutfile,pp,XFCC); | |||
if (! regfile(layoutfile)) { | if (! regfile(layoutfile)) { | |||
zmessageACK(Mwin,"layout image file missing: \n %s",layoutfile); | zmessageACK(Mwin,"layout image file missing: \n %s",layoutfile); | |||
Plog(1,"no layout image \n"); | Plog(0,"no layout image \n"); | |||
goto badproject; | goto badproject; | |||
} | } | |||
Lpxb = PXB_load(layoutfile,1); // layout image | Lpxb = PXB_load(layoutfile,1); // layout image | |||
if (! Lpxb) { Plog(1,"PXB_load() layout file \n"); goto badproject; } | if (! Lpxb) { Plog(0,"PXB_load() layout file \n"); goto badproject; } | |||
Lww = Lpxb->ww; // layout size | Lww = Lpxb->ww; // layout size | |||
Lhh = Lpxb->hh; | Lhh = Lpxb->hh; | |||
} | } | |||
else if (strmatchN(pp,"flatlayout:",11)) // flatlayout: ww hh R|G|B | else if (strmatchN(pp,"flatlayout:",11)) // flatlayout: ww hh R|G|B | |||
{ | { | |||
nn = sscanf(buff,"flatlayout: %d %d RGB: %d/%d/%d \n", | nn = sscanf(buff,"flatlayout: %d %d RGB: %d/%d/%d \n", | |||
&ww1,&hh1,&flatRGB[0],&flatRGB[1],&flatRGB[2]); | &ww1,&hh1,&flatRGB[0],&flatRGB[1],&flatRGB[2]); | |||
if (nn != 5) { Plog(1,"flatlayout rec. \n"); goto badproject; } | if (nn != 5) { Plog(0,"flatlayout rec. \n"); goto badproject; } | |||
*layoutfile = 0; // flat layout, no layout file | *layoutfile = 0; // flat layout, no layout file | |||
Lpxb = PXB_make(ww1,hh1,3); // layout image | Lpxb = PXB_make(ww1,hh1,3); // layout image | |||
if (! Lpxb) goto badproject; | if (! Lpxb) goto badproject; | |||
Lww = Lpxb->ww; // layout size | Lww = Lpxb->ww; // layout size | |||
Lhh = Lpxb->hh; | Lhh = Lpxb->hh; | |||
for (py = 0; py < Lhh; py++) // fill layout with flat color | for (py = 0; py < Lhh; py++) // fill layout with flat color | |||
for (px = 0; px < Lww; px++) { | for (px = 0; px < Lww; px++) { | |||
pix = PXBpix(Lpxb,px,py); | pix = PXBpix(Lpxb,px,py); | |||
pix[0] = flatRGB[0]; | pix[0] = flatRGB[0]; | |||
pix[1] = flatRGB[1]; | pix[1] = flatRGB[1]; | |||
pix[2] = flatRGB[2]; | pix[2] = flatRGB[2]; | |||
} | } | |||
} | } | |||
else { Plog(1,"unknown rec. \n"); goto badproject; } | else { Plog(0,"unknown rec. \n"); goto badproject; } | |||
// read any number of overlay image records | // read any number of overlay image records | |||
while (true) | while (true) | |||
{ | { | |||
pp = fgets_trim(buff,XFCC,fid); | pp = fgets_trim(buff,XFCC,fid); | |||
if (! pp) break; | if (! pp) break; | |||
if (strmatchN(pp,"end",3)) break; | if (strmatchN(pp,"end",3)) break; | |||
if (strmatchN(pp,"image:",6)) // image: /.../filename.jpg | if (strmatchN(pp,"image:",6)) // image: /.../filename.jpg | |||
skipping to change at line 697 | skipping to change at line 697 | |||
image[ii].ww1 = pxbtemp->ww; | image[ii].ww1 = pxbtemp->ww; | |||
image[ii].hh1 = pxbtemp->hh; | image[ii].hh1 = pxbtemp->hh; | |||
continue; | continue; | |||
} | } | |||
ii = Nimage - 1; // current image | ii = Nimage - 1; // current image | |||
if (strmatchN(pp,"position:",9)) { // position: xxx yyy | if (strmatchN(pp,"position:",9)) { // position: xxx yyy | |||
nn = sscanf(pp,"position: %d %d",&image[ii].px0,&image[ii].py0); | nn = sscanf(pp,"position: %d %d",&image[ii].px0,&image[ii].py0); | |||
if (nn != 2) { Plog(1,"position rec. \n"); goto badproject; } | if (nn != 2) { Plog(0,"position rec. \n"); goto badproject; } | |||
continue; | continue; | |||
} | } | |||
if (strmatchN(pp,"fixed:",6)) { // position fixed: n 22.30 | if (strmatchN(pp,"fixed:",6)) { // position fixed: n 22.30 | |||
nn = sscanf(pp,"fixed: %d",&image[ii].fixed); | nn = sscanf(pp,"fixed: %d",&image[ii].fixed); | |||
if (nn != 1) { Plog(1,"fixed rec. \n"); goto badproject; } | if (nn != 1) { Plog(0,"fixed rec. \n"); goto badproject; } | |||
continue; | continue; | |||
} | } | |||
if (strmatchN(pp,"scale:",6)) { // scale: n.nnn | if (strmatchN(pp,"scale:",6)) { // scale: n.nnn | |||
nn = sscanf(pp,"scale: %f",&image[ii].scale); | nn = sscanf(pp,"scale: %f",&image[ii].scale); | |||
if (nn != 1) { Plog(1,"scale rec. \n"); goto badproject; } | if (nn != 1) { Plog(0,"scale rec. \n"); goto badproject; } | |||
continue; | continue; | |||
} | } | |||
if (strmatchN(pp,"theta:",6)) { // theta: n.nnn | if (strmatchN(pp,"theta:",6)) { // theta: n.nnn | |||
nn = sscanf(pp,"theta: %f",&image[ii].theta); | nn = sscanf(pp,"theta: %f",&image[ii].theta); | |||
if (nn != 1) { Plog(1,"theta rec. \n"); goto badproject; } | if (nn != 1) { Plog(0,"theta rec. \n"); goto badproject; } | |||
image[ii].sinT = sin(image[ii].theta); | image[ii].sinT = sin(image[ii].theta); | |||
image[ii].cosT = cos(image[ii].theta); | image[ii].cosT = cos(image[ii].theta); | |||
continue; | continue; | |||
} | } | |||
if (strmatchN(pp,"Btransp:",8)) { // Btransp: 0.nnn | if (strmatchN(pp,"Btransp:",8)) { // Btransp: 0.nnn | |||
nn = sscanf(pp,"Btransp: %f",&image[ii].Btransp); | nn = sscanf(pp,"Btransp: %f",&image[ii].Btransp); | |||
if (nn != 1) { Plog(1,"Btransp rec. \n"); goto badproject; } | if (nn != 1) { Plog(0,"Btransp rec. \n"); goto badproject; } | |||
continue; | continue; | |||
} | } | |||
if (strmatchN(pp,"Lmarg:",6)) { // Lmarg: nnn | if (strmatchN(pp,"Lmarg:",6)) { // Lmarg: nnn | |||
nn = sscanf(pp,"Lmarg: %d",&image[ii].Lmarg); | nn = sscanf(pp,"Lmarg: %d",&image[ii].Lmarg); | |||
if (nn != 1) { Plog(1,"Lmarg rec. \n"); goto badproject; } | if (nn != 1) { Plog(0,"Lmarg rec. \n"); goto badproject; } | |||
continue; | continue; | |||
} | } | |||
if (strmatchN(pp,"Rmarg:",6)) { // Rmarg: nnn | if (strmatchN(pp,"Rmarg:",6)) { // Rmarg: nnn | |||
nn = sscanf(pp,"Rmarg: %d",&image[ii].Rmarg); | nn = sscanf(pp,"Rmarg: %d",&image[ii].Rmarg); | |||
if (nn != 1) { Plog(1,"Rmarg rec. \n"); goto badproject; } | if (nn != 1) { Plog(0,"Rmarg rec. \n"); goto badproject; } | |||
continue; | continue; | |||
} | } | |||
if (strmatchN(pp,"Tmarg:",6)) { // Tmarg: nnn | if (strmatchN(pp,"Tmarg:",6)) { // Tmarg: nnn | |||
nn = sscanf(pp,"Tmarg: %d",&image[ii].Tmarg); | nn = sscanf(pp,"Tmarg: %d",&image[ii].Tmarg); | |||
if (nn != 1) { Plog(1,"Tmarg rec. \n"); goto badproject; } | if (nn != 1) { Plog(0,"Tmarg rec. \n"); goto badproject; } | |||
continue; | continue; | |||
} | } | |||
if (strmatchN(pp,"Bmarg:",6)) { // Bmarg: nnn | if (strmatchN(pp,"Bmarg:",6)) { // Bmarg: nnn | |||
nn = sscanf(pp,"Bmarg: %d",&image[ii].Bmarg); | nn = sscanf(pp,"Bmarg: %d",&image[ii].Bmarg); | |||
if (nn != 1) { Plog(1,"Bmarg rec. \n"); goto badproject; } | if (nn != 1) { Plog(0,"Bmarg rec. \n"); goto badproject; } | |||
continue; | continue; | |||
} | } | |||
if (strmatchN(pp,"Lblend:",7)) { // Lblend: nnn | if (strmatchN(pp,"Lblend:",7)) { // Lblend: nnn | |||
nn = sscanf(pp,"Lblend: %d",&image[ii].Lblend); | nn = sscanf(pp,"Lblend: %d",&image[ii].Lblend); | |||
if (nn != 1) { Plog(1,"Lblend rec. \n"); goto badproject; } | if (nn != 1) { Plog(0,"Lblend rec. \n"); goto badproject; } | |||
continue; | continue; | |||
} | } | |||
if (strmatchN(pp,"Rblend:",7)) { // Rblend: nnn | if (strmatchN(pp,"Rblend:",7)) { // Rblend: nnn | |||
nn = sscanf(pp,"Rblend: %d",&image[ii].Rblend); | nn = sscanf(pp,"Rblend: %d",&image[ii].Rblend); | |||
if (nn != 1) { Plog(1,"Rblend rec. \n"); goto badproject; } | if (nn != 1) { Plog(0,"Rblend rec. \n"); goto badproject; } | |||
continue; | continue; | |||
} | } | |||
if (strmatchN(pp,"Tblend:",7)) { // Tblend: nnn | if (strmatchN(pp,"Tblend:",7)) { // Tblend: nnn | |||
nn = sscanf(pp,"Tblend: %d",&image[ii].Tblend); | nn = sscanf(pp,"Tblend: %d",&image[ii].Tblend); | |||
if (nn != 1) { Plog(1,"Tblend rec. \n"); goto badproject; } | if (nn != 1) { Plog(0,"Tblend rec. \n"); goto badproject; } | |||
continue; | continue; | |||
} | } | |||
if (strmatchN(pp,"Bblend:",7)) { // Bblend: nnn | if (strmatchN(pp,"Bblend:",7)) { // Bblend: nnn | |||
nn = sscanf(pp,"Bblend: %d",&image[ii].Bblend); | nn = sscanf(pp,"Bblend: %d",&image[ii].Bblend); | |||
if (nn != 1) { Plog(1,"Bblend rec. \n"); goto badproject; } | if (nn != 1) { Plog(0,"Bblend rec. \n"); goto badproject; } | |||
continue; | continue; | |||
} | } | |||
if (strmatchN(pp,"Nwarp:",6)) { // Nwarp: nn | if (strmatchN(pp,"Nwarp:",6)) { // Nwarp: nn | |||
nn = sscanf(pp,"Nwarp: %d",&image[ii].Nwarp); | nn = sscanf(pp,"Nwarp: %d",&image[ii].Nwarp); | |||
if (nn != 1) { Plog(1,"Nwarp rec. \n"); goto badproject; } | if (nn != 1) { Plog(0,"Nwarp rec. \n"); goto badproject; } | |||
if (image[ii].Nwarp > 200) { Plog(1,"Nwarp rec. \n"); goto badproject; | if (image[ii].Nwarp > 200) { Plog(0,"Nwarp rec. \n"); goto badproject; | |||
} | } | |||
for (kk = 0; kk < image[ii].Nwarp; kk++) { | for (kk = 0; kk < image[ii].Nwarp; kk++) { | |||
pp = fgets_trim(buff,XFCC,fid); // n.nnn n.nnn n.nnn n.nnn n.nnn | pp = fgets_trim(buff,XFCC,fid); // n.nnn n.nnn n.nnn n.nnn n.nnn | |||
if (! pp) break; // (loop for Nwarp records) | if (! pp) break; // (loop for Nwarp records) | |||
nn = sscanf(pp,"%f %f %f %f %f",&image[ii].warpmem[kk][0], | nn = sscanf(pp,"%f %f %f %f %f",&image[ii].warpmem[kk][0], | |||
&image[ii].warpmem[kk][1],&image[ii].warpmem[kk][2], | &image[ii].warpmem[kk][1],&image[ii].warpmem[kk][2], | |||
&image[ii].warpmem[kk][3],&image[ii].warpmem[kk][4]); | &image[ii].warpmem[kk][3],&image[ii].warpmem[kk][4]); | |||
if (nn != 5) { Plog(1,"warpmem rec. \n"); goto badproject; } | if (nn != 5) { Plog(0,"warpmem rec. \n"); goto badproject; } | |||
} | } | |||
} | } | |||
ww1 = image[ii].ww1; | ww1 = image[ii].ww1; | |||
hh1 = image[ii].hh1; | hh1 = image[ii].hh1; | |||
if (strmatchN(pp,"vtrancc:",8)) { // vtrancc: nnnn | if (strmatchN(pp,"vtrancc:",8)) { // vtrancc: nnnn | |||
nn = sscanf(pp,"vtrancc: %d",&vcc); | nn = sscanf(pp,"vtrancc: %d",&vcc); | |||
if (nn != 1) { Plog(1,"vtrancc rec. \n"); goto badproject; } | if (nn != 1) { Plog(0,"vtrancc rec. \n"); goto badproject; } | |||
if (vcc && vcc != ww1 * hh1) { Plog(1,"vtrancc rec. \n"); goto badproje | if (vcc && vcc != ww1 * hh1) { Plog(0,"vtrancc rec. \n"); goto badproje | |||
ct; } | ct; } | |||
image[ii].vtrancc = vcc; | image[ii].vtrancc = vcc; | |||
continue; | continue; | |||
} | } | |||
if (strmatchN(pp,"warpcc:",7)) { // warpcc: nnnn | if (strmatchN(pp,"warpcc:",7)) { // warpcc: nnnn | |||
nn = sscanf(pp,"warpcc: %d",&wcc); | nn = sscanf(pp,"warpcc: %d",&wcc); | |||
if (nn != 1) { Plog(1,"warpcc rec. \n"); goto badproject; } | if (nn != 1) { Plog(0,"warpcc rec. \n"); goto badproject; } | |||
if (wcc && wcc != (int) (ww1 * hh1 * sizeof(float))) { Plog(1,"warpcc r | if (wcc && wcc != (int) (ww1 * hh1 * sizeof(float))) { Plog(0,"warpcc r | |||
ec. \n"); goto badproject; } | ec. \n"); goto badproject; } | |||
image[ii].warpcc = wcc; | image[ii].warpcc = wcc; | |||
continue; | continue; | |||
} | } | |||
} | } | |||
// read any number of text records | // read any number of text records | |||
while (true) | while (true) | |||
{ | { | |||
pp = fgets_trim(buff,XFCC,fid); | pp = fgets_trim(buff,XFCC,fid); | |||
skipping to change at line 831 | skipping to change at line 831 | |||
pp += 5; | pp += 5; | |||
while (*pp == ' ') pp++; | while (*pp == ' ') pp++; | |||
repl_Nstrs(pp,txattr->text,"\\n","\n",null); // replace "\n" with newline | repl_Nstrs(pp,txattr->text,"\\n","\n",null); // replace "\n" with newline | |||
continue; | continue; | |||
} | } | |||
ii = Ntext - 1; // current text | ii = Ntext - 1; // current text | |||
if (strmatchN(pp,"position:",9)) { // position: xx yy | if (strmatchN(pp,"position:",9)) { // position: xx yy | |||
nn = sscanf(pp,"position: %d %d",&text[ii].px0,&text[ii].py0); | nn = sscanf(pp,"position: %d %d",&text[ii].px0,&text[ii].py0); | |||
if (nn != 2) { Plog(1,"position rec. \n"); goto badproject; } | if (nn != 2) { Plog(0,"position rec. \n"); goto badproject; } | |||
continue; | continue; | |||
} | } | |||
if (strmatchN(pp,"font:",5)) { // font: free sans size: nn | if (strmatchN(pp,"font:",5)) { // font: free sans size: nn | |||
pp += 5; | pp += 5; | |||
while (*pp == ' ') pp++; | while (*pp == ' ') pp++; | |||
pp2 = strstr(pp,"size:"); | pp2 = strstr(pp,"size:"); | |||
if (! pp2) { Plog(1,"font rec. \n"); goto badproject; } | if (! pp2) { Plog(0,"font rec. \n"); goto badproject; } | |||
*pp2 = 0; | *pp2 = 0; | |||
pp2 += 5; | pp2 += 5; | |||
strncpy0(txattr->font,pp,80); | strncpy0(txattr->font,pp,80); | |||
txattr->size = atoi(pp2); | txattr->size = atoi(pp2); | |||
if (txattr->size < 8) { Plog(1,"font rec. \n"); goto badproject; } | if (txattr->size < 8) { Plog(0,"font rec. \n"); goto badproject; } | |||
continue; | continue; | |||
} | } | |||
if (strmatchN(pp,"attributes:",11)) { // attributes | if (strmatchN(pp,"attributes:",11)) { // attributes | |||
txattr = &text[ii].attr; | txattr = &text[ii].attr; | |||
nn = sscanf(pp,"attributes: %f %s %s %s %s %d %d %d %d %d %d %d", | nn = sscanf(pp,"attributes: %f %s %s %s %s %d %d %d %d %d %d %d", | |||
&txattr->angle, txattr->color[0], txattr->color[1], txattr->co lor[2], txattr->color[3], | &txattr->angle, txattr->color[0], txattr->color[1], txattr->co lor[2], txattr->color[3], | |||
&txattr->transp[0], &txattr->transp[1], &txattr->transp[2], &t xattr->transp[3], | &txattr->transp[0], &txattr->transp[1], &txattr->transp[2], &t xattr->transp[3], | |||
&txattr->towidth, &txattr->shwidth, &txattr->shangle); | &txattr->towidth, &txattr->shwidth, &txattr->shangle); | |||
if (nn != 12) { Plog(1,"attributes rec. \n"); goto badproject; } | if (nn != 12) { Plog(0,"attributes rec. \n"); goto badproject; } | |||
} | } | |||
} | } | |||
// read any number of line/arrow records | // read any number of line/arrow records | |||
while (true) | while (true) | |||
{ | { | |||
pp = fgets_trim(buff,XFCC,fid); | pp = fgets_trim(buff,XFCC,fid); | |||
if (! pp) break; | if (! pp) break; | |||
if (strmatchN(pp,"end",3)) break; | if (strmatchN(pp,"end",3)) break; | |||
if (strmatchN(pp,"line:",5)) { // line: | if (strmatchN(pp,"line:",5)) { // line: | |||
ii = Nline++; | ii = Nline++; | |||
continue; | continue; | |||
} | } | |||
ii = Nline - 1; // current line | ii = Nline - 1; // current line | |||
if (strmatchN(pp,"position:",9)) { // position: xx yy | if (strmatchN(pp,"position:",9)) { // position: xx yy | |||
nn = sscanf(pp,"position: %d %d",&line[ii].px0,&line[ii].py0); | nn = sscanf(pp,"position: %d %d",&line[ii].px0,&line[ii].py0); | |||
if (nn != 2) { Plog(1,"position rec. \n"); goto badproject; } | if (nn != 2) { Plog(0,"position rec. \n"); goto badproject; } | |||
continue; | continue; | |||
} | } | |||
if (strmatchN(pp,"attributes:",11)) { // attributes: | if (strmatchN(pp,"attributes:",11)) { // attributes: | |||
lnattr = &line[ii].attr; | lnattr = &line[ii].attr; | |||
nn = sscanf(pp,"attributes: %d %d %d %d %f %s %s %s %s %d %d %d %d % d %d %d", | nn = sscanf(pp,"attributes: %d %d %d %d %f %s %s %s %s %d %d %d %d % d %d %d", | |||
&lnattr->length, &lnattr->width, &lnattr->larrow, &lnattr->rar row, &lnattr->angle, | &lnattr->length, &lnattr->width, &lnattr->larrow, &lnattr->rar row, &lnattr->angle, | |||
lnattr->color[0], lnattr->color[1], lnattr->color[2], lnattr-> color[3], | lnattr->color[0], lnattr->color[1], lnattr->color[2], lnattr-> color[3], | |||
&lnattr->transp[0], &lnattr->transp[1], &lnattr->transp[2], &l nattr->transp[3], | &lnattr->transp[0], &lnattr->transp[1], &lnattr->transp[2], &l nattr->transp[3], | |||
&lnattr->towidth, &lnattr->shwidth, &lnattr->shangle); | &lnattr->towidth, &lnattr->shwidth, &lnattr->shangle); | |||
if (nn != 16) { Plog(1,"attributes rec. \n"); goto badproject; } | if (nn != 16) { Plog(0,"attributes rec. \n"); goto badproject; } | |||
} | } | |||
} | } | |||
fclose(fid); | fclose(fid); | |||
fid = 0; | fid = 0; | |||
// read binary transparency file if any | // read binary transparency file if any | |||
for (vcc = ii = 0; ii < Nimage; ii++) // sum transparency data | for (vcc = ii = 0; ii < Nimage; ii++) // sum transparency data | |||
vcc += image[ii].vtrancc; | vcc += image[ii].vtrancc; | |||
skipping to change at line 909 | skipping to change at line 909 | |||
{ | { | |||
nfid = open(tranfile,O_RDONLY); | nfid = open(tranfile,O_RDONLY); | |||
if (nfid < 0) goto failure; | if (nfid < 0) goto failure; | |||
for (ii = 0; ii < Nimage; ii++) // read transparency data | for (ii = 0; ii < Nimage; ii++) // read transparency data | |||
{ | { | |||
vcc = image[ii].vtrancc; | vcc = image[ii].vtrancc; | |||
if (vcc) { | if (vcc) { | |||
image[ii].vtranmap = (uint8 *) zmalloc(vcc,"mashup"); | image[ii].vtranmap = (uint8 *) zmalloc(vcc,"mashup"); | |||
cc = read(nfid,image[ii].vtranmap,vcc); | cc = read(nfid,image[ii].vtranmap,vcc); | |||
if (cc != vcc) { Plog(1,"vtranmap data \n"); goto badproject; } | if (cc != vcc) { Plog(0,"vtranmap data \n"); goto badproject; } | |||
} | } | |||
else image[ii].vtranmap = 0; | else image[ii].vtranmap = 0; | |||
} | } | |||
close(nfid); | close(nfid); | |||
nfid = -1; | nfid = -1; | |||
} | } | |||
// read binary warp data file if any | // read binary warp data file if any | |||
skipping to change at line 934 | skipping to change at line 934 | |||
{ | { | |||
nfid = open(warpfile,O_RDONLY); | nfid = open(warpfile,O_RDONLY); | |||
if (nfid < 0) goto failure; | if (nfid < 0) goto failure; | |||
for (ii = 0; ii < Nimage; ii++) // read warp data | for (ii = 0; ii < Nimage; ii++) // read warp data | |||
{ | { | |||
wcc = image[ii].warpcc; | wcc = image[ii].warpcc; | |||
if (wcc) { | if (wcc) { | |||
image[ii].warpx = (float *) zmalloc(wcc,"mashup"); | image[ii].warpx = (float *) zmalloc(wcc,"mashup"); | |||
cc = read(nfid,image[ii].warpx,wcc); | cc = read(nfid,image[ii].warpx,wcc); | |||
if (cc != wcc) { Plog(1,"warpx data \n"); goto badproject; } | if (cc != wcc) { Plog(0,"warpx data \n"); goto badproject; } | |||
image[ii].warpy = (float *) zmalloc(wcc,"mashup"); | image[ii].warpy = (float *) zmalloc(wcc,"mashup"); | |||
cc = read(nfid,image[ii].warpy,wcc); | cc = read(nfid,image[ii].warpy,wcc); | |||
if (cc != wcc) { Plog(1,"warpy data \n"); goto badproject; } | if (cc != wcc) { Plog(0,"warpy data \n"); goto badproject; } | |||
} | } | |||
else image[ii].warpx = image[ii].warpy = 0; | else image[ii].warpx = image[ii].warpy = 0; | |||
} | } | |||
close(nfid); | close(nfid); | |||
nfid = -1; | nfid = -1; | |||
} | } | |||
// generate overlay images | // generate overlay images | |||
End of changes. 32 change blocks. | ||||
38 lines changed or deleted | 38 lines changed or added |