|
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.
|