From: <bma...@us...> - 2012-07-05 15:04:33
|
Revision: 7458 http://fudaa.svn.sourceforge.net/fudaa/?rev=7458&view=rev Author: bmarchan Date: 2012-07-05 15:04:23 +0000 (Thu, 05 Jul 2012) Log Message: ----------- Fix : Repack des PGM par Java (necessaire si images pas mises en cache). Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/PivPGMReader.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/PivPGMWriter.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/PivPGMReader.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/PivPGMReader.java 2012-07-05 13:26:40 UTC (rev 7457) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/PivPGMReader.java 2012-07-05 15:04:23 UTC (rev 7458) @@ -6,6 +6,8 @@ import java.io.IOException; import java.io.LineNumberReader; +import com.memoire.fu.FuLog; + /** * Une classe de lecture d'une image PGM. Cette classe ne respecte pas le standard IIO, mais * est beaucoup simple et rapide. @@ -28,6 +30,8 @@ * @throws IOException Si le format est incorrect. */ public BufferedImage read(File _srcFile) throws IOException { + FuLog.trace("Lecture du fichier "+_srcFile.getName()); + BufferedImage buf=null; LineNumberReader reader=new LineNumberReader(new FileReader(_srcFile)); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/PivPGMWriter.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/PivPGMWriter.java 2012-07-05 13:26:40 UTC (rev 7457) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/imageio/PivPGMWriter.java 2012-07-05 15:04:23 UTC (rev 7458) @@ -6,6 +6,8 @@ import java.io.IOException; import java.io.PrintWriter; +import com.memoire.fu.FuLog; + /** * Une classe d'ecriture d'une image PGM. Cette classe ne respecte pas le standard IIO, mais * est beaucoup simple et rapide. @@ -23,6 +25,8 @@ * @throws IOException Si le fichier ne peut \xEAtre ecrit. */ public void write(File _srcFile, BufferedImage _img) throws IOException { + FuLog.trace("Ecriture du fichier "+_srcFile.getName()); + int width=_img.getWidth(); int height=_img.getHeight(); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2012-07-05 13:26:40 UTC (rev 7457) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/metier/PivProject.java 2012-07-05 15:04:23 UTC (rev 7458) @@ -31,6 +31,7 @@ import org.fudaa.fudaa.piv.PivPreferences; import org.fudaa.fudaa.piv.PivResource; import org.fudaa.fudaa.piv.imageio.PivPGMReader; +import org.fudaa.fudaa.piv.imageio.PivPGMWriter; import org.fudaa.fudaa.piv.io.PivAverageVelFileFormat; import org.fudaa.fudaa.piv.io.PivBathyFileFormat; import org.fudaa.fudaa.piv.io.PivDischargeFileFormat; @@ -577,27 +578,27 @@ closePgmCacheImageInputStream(); List<File> newFiles=new ArrayList<File>(); -// List<File> newpgm=new ArrayList<File>(); + List<File> newpgm=new ArrayList<File>(); // Traitement des fichiers .pgm, pour mise en cache. for (File f : _files) { File fimg=new File(imgInpDir,f.getName()); if (!srcFiles_.contains(f)) { - // Reconditionnement de l'image. -// if (f.getName().endsWith(".pgm")) { -// newpgm.add(f); -// } -// else { + // Reconditionnement de l'image, uniquement si le cache n'est pas automatique. + if (f.getName().endsWith(".pgm") && !PivPreferences.PIV.getBooleanProperty(PivPreferences.PIV_AUTO_CACHE,true)) { + newpgm.add(f); + } + else { // Copie du fichier localement au projet. CtuluLibFile.copyFile(f, fimg); -// } + } } newFiles.add(fimg); } - // Reconditionnement des pgm -// PivExeLauncher.instance().launchRepackingImg(_ana, this, _task, newpgm.toArray(new File[0])); + // Reconditionnement des pgm. Necessaire si une seule image est mise en cache. + repack(_ana, _task, newpgm.toArray(new File[0])); // Suppression des anciennes images sources for (File f : imgInpDir.listFiles(FLT_FILES)) { @@ -611,6 +612,58 @@ } /** + * Reconditionne les images d'origine de pgm ligne a pgm matrice, + * et les place dans le r\xE9pertoire des images reconditionn\xE9es. + * + * @param _ana L'analyse pour la tache ex\xE9cut\xE9e. + * @param _task La tache en cours d'execution. + * @param _imgOrig Les fichiers d'origine \xE0 reconditionner. + * @return true : Tout s'est bien d\xE9roul\xE9. + */ + public boolean repack(CtuluAnalyze _ana, CtuluTaskOperationGUI _task, File[] _imgOrig) { + File imgInpDir=new File(rootPath,IMG_PGM_DIR); + + if (_task!=null) + _task.setProgression(10); + + int prog=0; + for (int i=0; i<_imgOrig.length; i++) { + File dstImgInp=new File(imgInpDir,_imgOrig[i].getName()); + + String desc=PivResource.getS("Reconditionnement de l'image {0} sur {1}",(i+1),_imgOrig.length); + FuLog.trace(desc); + if (_task!=null) { + _task.setDesc(desc); + _task.setProgression(prog); + } + + try { + BufferedImage buf = new PivPGMReader().read(_imgOrig[i]); + new PivPGMWriter().write(dstImgInp, buf); + + if (_task!=null && _task.isStopRequested()) { + _ana.addError(PivResource.getS("Reconditionnement interrompu")); + return false; + } + } + catch (IOException ex) { + _ana.addError(ex.getMessage()); + return false; + } + prog=(i+1)*90/_imgOrig.length; + if (_task!=null) + _task.setProgression(prog); + } + + FuLog.trace(PivResource.getS("Reconditionnement ok.")); + + if (_task!=null) + _task.setProgression(100); + + return true; + } + + /** * Les images transform\xE9es ont-elles \xE9t\xE9 modifi\xE9es par le calcul ? * @return true : elles ont \xE9t\xE9 modifi\xE9es. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |