Dear Michael,
I thank you very much for your answer.
Being as well part of the "people who don't like escaping inner quotes with the 
backslacsh character" I quite like your second proposed solution, which I 
discovered with your mail. So thanks a lot!
Nevertheless, with the following code:

        newImage("myPicture", "RGB ramp", 256, 256, 1);
        filePath = "/home/schmid/tmp/";
        filePath = filePath.replace("/", File.separator);
        dummy1 = eval('script', 'IJ.getImage().getOriginalFileInfo().directory 
= "'+ filePath + '";');
        dummy2 = eval("script", 
"IJ.log(IJ.getImage().getOriginalFileInfo().directory);");
        run("Show Info...");

I get the following error messages:

<eval>:1:764 Missing close quote
load("nashorn:mozilla_compat.js");importPackage(Packages.ij);importPackage(Packages.ij.gui);importPackage(Packages.ij.process);importPackage(Packages.ij.measure);importPackage(Packages.ij.util);importPackage(Packages.ij.macro);importPackage(Packages.ij.plugin);importPackage(Packages.ij.io);importPackage(Packages.ij.text);importPackage(Packages.ij.plugin.filter);importPackage(Packages.ij.plugin.frame);importPackage(Packages.ij.plugin.tool);importPackage(java.lang);importPackage(java.awt);importPackage(java.awt.image);importPackage(java.awt.geom);importPackage(java.awt.event);importPackage(java.util);importPackage(java.io);function
 print(s) {IJ.log(s);};function getArgument() {return 
"";};IJ.getImage().getOriginalFileInfo().directory = "\home\schmid\tmp\";
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                            ^ in <eval> at line number 1 at 
column number 764
TypeError: Cannot get property "directory" of null in <eval> at line number 1

and in the case I get rid of the "filePath = filePath.replace("/", 
File.separator);" line I get the following errors:

TypeError: Cannot set property "directory" of null in <eval> at line number 1
TypeError: Cannot get property "directory" of null in <eval> at line number 1

Should I understand that this is a Windows specific issue ?

Kindest regards,

Philippe

----- Mail original -----
De: "Michael Schmid" <[email protected]>
À: "imagej" <[email protected]>
Envoyé: Jeudi 5 Septembre 2024 17:18:09
Objet: File.directory parameter on concatened picture

Hi Philippe,

hmm, I think you got the solution already, it works for me (at least I 
can see the directory in the image Info:

filePath="/home/schmid/tmp/";
dummy=eval("script", "IJ.getImage().getOriginalFileInfo().directory = 
\"" + filePath + "\";");

People who don't like escaping inner quotes with the backslacsh 
character could also write
dummy=eval('script', 'IJ.getImage().getOriginalFileInfo().directory = "' 
+ filePath + '";');

(I assigned the output of "eval" to a dummy variable; otherwise the 
directory is written to the Log window.)

Maybe your directory path was missing the trailing slash?


Michael
________________________________________________________________
On 05.09.24 16:59, CARL Philippe (LBP) wrote:
> Dear all,
> Within a macro I would like to set the File.directory parameter of a picture 
> obtained through a Image>Stacks>Tools>Concatenete... process (given that this 
> parameter is read by a plugin I want to apply on the concatened picture).
> Given that filePath is the String containing the path I would like to set, I 
> tried to use the following macro code (without any success):
>       eval("script", "IJ.getImage().getOriginalFileInfo().directory = \"" + 
> filePath + "\";");
> I guess I'm not too far from the solution, but can't reach it.
> I thank you very much in advance for your help on this.
> My best regards,
> Philippe
> 
> Philippe CARL
> Laboratoire de Bioimagerie et Pathologies
> UMR 7021 CNRS - Université de Strasbourg
> Faculté de Pharmacie
> 74 route du Rhin
> 67401 ILLKIRCH
> Tel : +33(0)3 68 85 41 41

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html

Reply via email to