int SplitMPO_main(int argc,char ** argv) { std::string aFullName; std::string aPostR = "_R"; std::string aPostL = "_L"; bool DoTifGray = false; ElInitArgMain ( argc,argv, LArgMain() << EAMC(aFullName,"Full name (Dir+Pat)", eSAM_IsPatFile) , LArgMain() << EAM(aPostR,"Right",true,"Right extension, def=_R") << EAM(aPostL,"Left",true,"Left extension, def=_L") << EAM(DoTifGray,"TG",true,"Tiff gray, def=false") ); std::string aDir,aPat; SplitDirAndFile(aDir,aPat,aFullName); cInterfChantierNameManipulateur * aICNM = cInterfChantierNameManipulateur::BasicAlloc(aDir); const std::vector<std::string> * aSetIm = aICNM->Get(aPat); for (int aKIm=0 ; aKIm<int(aSetIm->size()) ; aKIm++) { std::string aNameIn = (*aSetIm)[aKIm]; for (int aK=0 ; aK<2 ; aK++) { std::string aPref = StdPrefix(aNameIn); std::string aPost = StdPostfix(aNameIn); std::string aNameOut = aPref+((aK==0)? aPostL : aPostR) + ".jpg"; std::string aCom = "exiftool "; if (aK==0) aCom = aCom + "-trailer:all= " + aNameIn + " -o " + aNameOut; else aCom = aCom+ aNameIn + " -mpimage2 -b> " + aNameOut; std::cout << aCom << "\n"; VoidSystem(aCom.c_str()); if (DoTifGray) { aCom = "convert " + aNameOut + " -compress None -depth 8 -colorspace Gray " + StdPrefix(aNameOut) + "_Gray.tif"; std::cout << aCom << "\n"; VoidSystem(aCom.c_str()); } } } return 1; }
bool code_file(const char * name,bool coder,std::string * ResNewName=0) { std::string aStrName(name); bool dcdpost = false; string NewName (name); if (IsPostfixed(name)) { dcdpost = (StdPostfix(name)=="dcd"); } else { } if (coder == dcdpost) return false; if (coder) NewName = name + string(".dcd"); else NewName = StdPrefix(name); if (ResNewName) * ResNewName = NewName; std::string aSauv = DirOfFile(aStrName) + "Dup_" + NameWithoutDir(aStrName) + ".dup"; std::string aCp = "cp " + aStrName + " " + aSauv; VoidSystem(aCp.c_str()); string MV = string(SYS_MV)+ " \"" + name + string("\" \"") + NewName +string("\""); INT NbOctet = sizeofile(name); Elise_File_Im F(name, Pt2di(NbOctet,1),GenIm::u_int1); Im1D_U_INT1 majic = ImMajic(); ELISE_COPY ( F.all_pts(), F.in()^majic.in()[FX%majic.tx()], F.out() ); // cout << MV.c_str() << "\n"; VoidSystem(MV.c_str()); ELISE_fp::RmFile(aSauv); return true; }
Im1D_INT4 hongrois(Im2D_INT4 cost) { ELISE_ASSERT(false,"Obsolete hongrois use ALGOHONGR"); INT nb = ElMin(cost.tx(),cost.ty()); { ELISE_fp fp("commande/HONGR/fich_inp",ELISE_fp::WRITE); fp.write_INT4(nb); INT ** c = cost.data(); for (INT l =0; l<nb ; l++) fp.write(c[l],sizeof(c[0][0]),nb); fp.close(); } VoidSystem("commande/HONGR/hongr"); Im1D_INT4 res(nb); { INT * r = res.data(); ELISE_fp fp("commande/HONGR/resultat",ELISE_fp::READ); fp.read(r,sizeof(r[0]),nb); fp.close(); for (INT k=0; k<nb; k++) r[k]--; } return res; }
void Sys(const std::string & aStr) { VoidSystem(aStr.c_str()); }