Re: batch conversion of a folder

Posted by ctrueden on
URL: http://imagej.273.s1.nabble.com/batch-conversion-of-a-folder-tp3696887p3696894.html

Hi Younes,

Try putting "setBatchMode(true)" at the beginning of the macro.

-Curtis

On Thu, Mar 13, 2008 at 11:43 AM, Younes Leysi Derilou <
[hidden email]> wrote:

> Hello Curtis,
>
> Thanks so much for your time to edit the macro. it works fine. I had
> to change the macro to overwrite the files (to save the hard drive
> memory), as following. I understood that why and how you asked macro
> to save with different prefix and extension. the small tiny problem is
> that the macro opens the images that converts and then closes. this
> results in a flashing windows in the working environment that bothers
> a user. is there a way to block displaying the conversion process?
>
> Thanks so much for your kind help,
> Younes
>
> // Recursively converts files to 8-bit TIFF starting in a
> user-specified directory and overwrites
> requires("1.32f");
> dir = getDirectory("Choose a Directory ");
> count = 1;
> //prefix = "converted-";
> listFiles(dir);
> function listFiles(dir) {
>   list = getFileList(dir);
>   for (i=0; i<list.length; i++) {
>       if (endsWith(list[i], "/"))
>           listFiles(""+dir+list[i]);
>       else if (endsWith(toLowerCase(list[i]), ".tif") ||
>           endsWith(toLowerCase(list[i]), ".tiff"))
>       {
>           print((count++) + ": " + dir + list[i]);
>           open(dir + list[i]);
>           // convert all open images to TIFF
>           c = 1;
>           while (nImages > 0) {
>               run("8-bit");
>               // place additional commands here
>                saveAs("Tiff", dir + list[i]);
>               close();
>               c++;
>            }
>       }
>   }
> }
>
> On Thu, Mar 13, 2008 at 10:54 AM, Curtis Rueden <[hidden email]> wrote:
> > Hi Younes,
> >
> > You do not need the batch converter plugin to use the macro I sent. My
> guess
> > is that some of the files in the subfolders are in a format that ImageJ
> does
> > not recognize. You could either move them, or change the macro to ignore
> > files unless they end with a particular extension.
> >
> > Below is a version that only converts files originally in TIFF format. I
> > noticed you also said you want to convert from 12-bit to 8-bit, so I put
> an
> > extra line in to do that as well.
> >
> > You can add more statements in the same place, immediately following the
> > "while (nImages > 0)" command. You can easily discover what a statement
> to
> > perform a particular action looks like by using the Macro Recorder
> (Plugins
> > > Macros > Record) feature. Just perform an action using the menus, then
> > copy and paste the resulting command from the macro recorder window into
> > your macro.
> >
> > ------
> > // Recursively converts files to TIFF starting in a user-specified
> directory
> >
> > requires("1.32f");
> > dir = getDirectory("Choose a Directory ");
> > count = 1;
> > prefix = "converted-";
> > listFiles(dir);
> >
> > function listFiles(dir) {
> >    list = getFileList(dir);
> >    for (i=0; i<list.length; i++) {
> >        if (endsWith(list[i], "/"))
> >            listFiles(""+dir+list[i]);
> >        else if (endsWith(toLowerCase(list[i]), ".tif") ||
> >            endsWith(toLowerCase(list[i]), ".tiff"))
> >        {
> >            print((count++) + ": " + dir + list[i]);
> >            open(dir + list[i]);
> >            // convert all open images to TIFF
> >            c = 1;
> >            while (nImages > 0) {
> >                run("8-bit");
> >                // place additional commands here
> >                saveAs("Tiff", dir + prefix + list[i] + "-" + c +
> ".tif");
> >                close();
> >                c++;
> >            }
> >        }
> >    }
> > }
> > ------
> >
> > -Curtis
> >
> > On Thu, Mar 13, 2008 at 8:33 AM, Younes Leysi Derilou <
> >
> > [hidden email]> wrote:
> >
> > > Dear Curtis,
> > >
> > > Thank you for your time to write the macro. i saved your text as
> > > "directory_convert_tiff.txt" in ij/macros folder and then run it. it
> > > asked me again to choose a directory which i selected the main folder.
> > > but then it showed an error like this "File is not in tiff, jpeg,
> > > giff, bmp .... format, a plugin for this format is not installed, or
> > > it was not found.". I have the batch converter plugin ( saved in
> > > ij/plugins) which works properly. I had also put the plugin into that
> > > main folder, but the same error came up. all of my images (in the
> > > subfloders) are in 12-bit tiff format and need to be converted to
> > > 8-bit tiff. is there something else i am missing to joint this plugin
> > > and macro together?
> > >
> > > thanks a lot for your kind collaboration,
> > >
> > > Best regards,
> > > Younes
> > >
> > > On Wed, Mar 12, 2008 at 4:40 PM, Curtis Rueden <[hidden email]>
> wrote:
> > > > Hi Younes,
> > > >
> > > > You need to modify the macro to perform the tasks you want. To get
> you
> > > > started, here is a version that recursively converts files to TIFF
> > > format:
> > > >
> > > > ------
> > > > // Recursively converts files to TIFF starting in a user-specified
> > > directory
> > > >
> > > > requires("1.32f");
> > > > dir = getDirectory("Choose a Directory ");
> > > > count = 1;
> > > > prefix = "converted-";
> > > > listFiles(dir);
> > > >
> > > > function listFiles(dir) {
> > > >    list = getFileList(dir);
> > > >    for (i=0; i<list.length; i++) {
> > > >        if (endsWith(list[i], "/"))
> > > >            listFiles(""+dir+list[i]);
> > > >        else {
> > > >            print((count++) + ": " + dir + list[i]);
> > > >            open(dir + list[i]);
> > > >            // convert all open images to TIFF
> > > >            c = 1;
> > > >            while (nImages > 0) {
> > > >                saveAs("Tiff", dir + prefix + list[i] + "-" + c +
> > > ".tif");
> > > >                close();
> > > >                c++;
> > > >            }
> > > >        }
> > > >    }
> > > > }
> > > > ------
> > > >
> > > > HTH,
> > > > Curtis
> > > >
> > > > On Wed, Mar 12, 2008 at 2:18 PM, Younes Leysi Derilou <
> > > >
> > > > [hidden email]> wrote:
> > > >
> > > > > Hello Curtis,
> > > > >
> > > > > Thank you for the link. i saved that file as "directory_call.txt"
> in
> > > > > "imageJ/macros/" folder. i run the macro first through
> > > > > "Menu/plugins/macro/run", which asked me to select the directory,
> i
> > > > > chose one (for example F:\test_conversion\day5c which had 49
> > > > > subfolders), then i run the batch converter plugin. that plugin
> just
> > > > > converted the images inside the subfolder that i had chosen,
> nothing
> > > > > else. i did not see any benefits of running that macro. i have
> also
> > > > > tried to run macro after that plugin, but nothing happened. is
> there
> > > > > other procedure that i should follow to joint the macro and plugin
> > > > > together?
> > > > >
> > > > > Thanks and Regards,
> > > > > Younes
> > > > >
> > > > > On Wed, Mar 12, 2008 at 2:06 PM, Curtis Rueden <[hidden email]>
> > > wrote:
> > > > > > Hi Younes,
> > > > > >
> > > > > > Take a look at the "list files recursively" macro:
> > > > > > http://rsb.info.nih.gov/ij/macros/ListFilesRecursively.txt
> > > > > >
> > > > > > -Curtis
> > > > > >
> > > > > >
> > > > > > On Wed, Mar 12, 2008 at 12:43 PM, Younes Leysi Derilou <
> > > > > > [hidden email]> wrote:
> > > > > >
> > > > > > > Hello ImageJ Lovers,
> > > > > > >
> > > > > > > I would like to convert 12-bit tiff images to 8-bit tiff
> images in
> > > a
> > > > > > > main folder which has already several sub-folders. the
> sub-folders
> > > > > > > have thousands of images which can be easily converted
> one-by-one,
> > > > > > > using the "batch converter" plugin  from the following link.
> the
> > > > > > > problem is that I have to use this plugin for all sub-folders
> one
> > > by
> > > > > > > one and the number of the sub-folders are too much. I am
> wondering
> > > if
> > > > > > > there is a way to run this plugin for the main folder; i.e.
> ask a
> > > > > > > macro to do the conversion job for all other sub-folders. any
> > > > > > > suggestions are highly appreciated.
> > > > > > > http://rsb.info.nih.gov/ij/plugins/batch-converter.html
> > > > > > >
> > > > > > > Truly yours,
> > > > > > > Younes
> > > > > > > --
> > > > > > > Younes Leysi
> > > > > > > "Life is a song, sing it."
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Younes Leysi
> > > > > "Life is a song, sing it."
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > Younes Leysi
> > > "Life is a song, sing it."
> > >
> >
>
>
>
> --
> Younes Leysi
> "Life is a song, sing it."
>