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
;
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
23 import ij
.process
.ImageProcessor
;
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
;
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
;
54 stack
.addSlice(fileName
, open
.openImage(fileName
).getProcessor());
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
);
79 for (int num
= startingNumber
; num
<= endingNumber
; num
++)
81 fileName
= imageStackDir
+ imageStackName
+ genNumberString(num
, numberLength
) + imageStackExt
;
85 // System.out.print("Reading " + fileName + " ... ");
87 stack
.addSlice(fileName
, open
.openImage(fileName
).getProcessor());
90 //System.out.println("done");
99 System
.out
.println(countFiles
+ " files read.");
101 return new ImagePlus(imageStackName
, stack
);
104 private static String
genNumberString(int number
, int length
)
108 result
= "" + number
;
109 while (result
.length() < length
)
110 result
= "0" + 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
);
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
);