Hi everyone,
I created a small macro to convert a bunch of image stacks from tif to vtk.gz and rename it. It works fine on every computer with a 64-bits architecture, but, in the case of a computer with a 32-bits, there is some issues. One of the first step of the macro is to open one stack and get informations out of it. On a 32-bits machine, if the number of steps in the stack is below 150, no problem, the macro works. If the number of step is higher, it raise this "classical" error : (Fiji Is Just) ImageJ 2.0.0-rc-42/1.50d; Java 1.6.0_24 [32-bit]; Windows XP 5.1; 268MB of 1500MB (17%) java.lang.OutOfMemoryError at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(FileInputStream.java:199) at java.io.BufferedInputStream.read1(BufferedInputStream.java:256) at java.io.BufferedInputStream.read(BufferedInputStream.java:317) at java.io.DataInputStream.readFully(DataInputStream.java:178) at java.io.DataInputStream.readFully(DataInputStream.java:152) at ij.macro.Functions.openAsRawString(Functions.java:3947) at ij.macro.Functions.doFile(Functions.java:3757) at ij.macro.Functions.getStringFunction(Functions.java:268) at ij.macro.Interpreter.getStringTerm(Interpreter.java:1290) at ij.macro.Interpreter.getString(Interpreter.java:1269) at ij.macro.Interpreter.doStringAssignment(Interpreter.java:928) at ij.macro.Interpreter.doAssignment(Interpreter.java:722) at ij.macro.Interpreter.doStatement(Interpreter.java:242) at ij.macro.Interpreter.doBlock(Interpreter.java:605) at ij.macro.Interpreter.doStatement(Interpreter.java:269) at ij.macro.Interpreter.doIf(Interpreter.java:963) at ij.macro.Interpreter.doStatement(Interpreter.java:245) at ij.macro.Interpreter.doStatements(Interpreter.java:215) at ij.macro.Interpreter.run(Interpreter.java:112) at ij.macro.Interpreter.run(Interpreter.java:82) at ij.macro.Interpreter.run(Interpreter.java:93) at ij.plugin.Macro_Runner.runMacro(Macro_Runner.java:153) at ij.IJ.runMacro(IJ.java:129) at ij.IJ.runMacro(IJ.java:118) at net.imagej.legacy.IJ1Helper$3.call(IJ1Helper.java:917) at net.imagej.legacy.IJ1Helper$3.call(IJ1Helper.java:914) at net.imagej.legacy.IJ1Helper.runMacroFriendly(IJ1Helper.java:880) at net.imagej.legacy.IJ1Helper.runMacro(IJ1Helper.java:914) at net.imagej.legacy.plugin.IJ1MacroEngine.eval(IJ1MacroEngine.java:116) at net.imagej.legacy.plugin.IJ1MacroEngine.eval(IJ1MacroEngine.java:163) at org.scijava.script.ScriptModule.run(ScriptModule.java:174) at org.scijava.module.ModuleRunner.run(ModuleRunner.java:167) at org.scijava.module.ModuleRunner.call(ModuleRunner.java:126) at org.scijava.module.ModuleRunner.call(ModuleRunner.java:65) at org.scijava.thread.DefaultThreadService$2.call(DefaultThreadService.java:191) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) I dedicated 1.5G of memory to Fiji, there is no reason it can't open one stack, moreover if it can open it when the number of steps in the stack is less than 150. If anyone of you has a clue, it would be great. Thank you ! Julien |
Free forum by Nabble | Edit this page |