Added comment to prevent myself from doing something silly in the future.
[trakem2.git] / mpi / fruitfly / general / fileAccess.java
blob2f38b1a94f061a5a64d0c15de9a8dcbcecaed5a5
1 package mpi.fruitfly.general;
3 import java.io.BufferedReader;
4 import java.io.IOException;
5 import java.io.PrintWriter;
6 import java.io.FileWriter;
7 import java.io.FileReader;
9 /**
10 * <p>Title: file access</p>
12 * <p>Description: Class that manages general file access open, read, write</p>
14 * <p>Copyright: Copyright (c) 2006</p>
16 * <p>Company: mpi-cbg</p>
18 * @author Stephan Preibisch
19 * @version 1.0
22 import ij.*;
23 import ij.process.ImageProcessor;
24 import ij.io.Opener;
25 import java.io.File;
26 import ij.io.FileSaver;
28 public class fileAccess
30 public static void saveStack(ImageStack stack, String fileName, int numberLength)
32 for (int i = 1; i <= stack.getSize(); i++)
33 new FileSaver(new ImagePlus("Image "+i,stack.getProcessor(i))).saveAsTiff(fileName + genNumberString(i, numberLength) + ".tif");
36 public static ImagePlus openCompleteStack(String imageStackDir, String imageStackName, String imageStackExt, int numberLength, int startingNumber)
38 Opener open = new Opener();
40 ImagePlus impTmp = open.openImage(imageStackDir + imageStackName + genNumberString(startingNumber, numberLength) + imageStackExt);
41 ImageStack stack = new ImageStack(impTmp.getWidth(), impTmp.getHeight());
43 File f = new File(imageStackDir);
44 int countFiles = startingNumber;
45 String fileName = "";
47 for (File entry : f.listFiles())
48 if (entry.toString().startsWith(imageStackDir + imageStackName) && entry.toString().endsWith(imageStackExt))
50 fileName = imageStackDir + imageStackName + genNumberString(countFiles++, numberLength) + imageStackExt;
52 try
54 stack.addSlice(fileName, open.openImage(fileName).getProcessor());
56 catch (Exception e)
58 countFiles--;
63 System.out.println(countFiles + " files read.");
65 return new ImagePlus(imageStackName, stack);
68 public static ImagePlus openStack(String imageStackDir, String imageStackName, String imageStackExt, int numberLength, int startingNumber, int endingNumber)
70 Opener open = new Opener();
72 ImagePlus impTmp = open.openImage(imageStackDir + imageStackName + genNumberString(startingNumber, numberLength) + imageStackExt);
73 ImageStack stack = new ImageStack(impTmp.getWidth(), impTmp.getHeight());
75 File f = new File(imageStackDir);
76 String fileName = "";
77 int countFiles = 0;
79 for (int num = startingNumber; num <= endingNumber; num++)
81 fileName = imageStackDir + imageStackName + genNumberString(num, numberLength) + imageStackExt;
83 try
85 // System.out.print("Reading " + fileName + " ... ");
87 stack.addSlice(fileName, open.openImage(fileName).getProcessor());
88 countFiles++;
90 //System.out.println("done");
92 } catch (Exception e)
99 System.out.println(countFiles + " files read.");
101 return new ImagePlus(imageStackName, stack);
104 private static String genNumberString(int number, int length)
106 String result = "";
108 result = "" + number;
109 while (result.length() < length)
110 result = "0" + result;
112 return result;
115 public static BufferedReader openFileRead(String fileName)
117 BufferedReader inputFile;
120 inputFile = new BufferedReader(new FileReader(fileName));
122 catch (IOException e)
124 System.err.println("mpi.fruitfly.general.openFileRead(): " + e);
125 inputFile = null;
127 return(inputFile);
130 public static PrintWriter openFileWrite(String fileName)
132 PrintWriter outputFile;
135 outputFile = new PrintWriter(new FileWriter(fileName));
137 catch (IOException e)
139 System.err.println("mpi.fruitfly.general.openFileWrite(): " + e);
140 outputFile = null;
142 return(outputFile);