*http://sourceforge.net/projects/jmol/files/Jmol-beta/Jmol%2014.3/Jmol%2014.3.16/Jmol-14.3.16_2015.08.21-binary.zip/download
<http://sourceforge.net/projects/jmol/files/Jmol-beta/Jmol%2014.3/Jmol%2014.3.16/Jmol-14.3.16_2015.08.21-binary.zip/download>*
Jmol.___JmolVersion="14.3.16_2015.08.21"
new feature: load var x
-- same as load "@x"
-- similar in syntax to write var x t.png
-- example:
var x = load("quartz.cif")
load var x {1 1 1}
bug fix: creating and running and saving binary hash from PNGJ fails
-- allows creating an associative binary array from a PNGJ file
then modifying it and loading that variable
then saving it as a new PNGJ file
-- initial PNGJ file is not necessary if binary array x is created first
-- example:
var x = load("test.png",true)
load "@x"
write test2.png as PNGJ
bug fix: hover callback is not supposed to be stopped with HOVER OFF
bug fix: atom.sx and atom.sy and atom.sz report incorrectly when
antialiasing is on
bug fix: write VAR x "test.png" creates a ZIP file instead of a PNGJ file
when x is from load("test.png",true)
bug fix: write test.png as PNGJ (without initial quotes) fails
​comments:
OK, that wasn't so bad. Thank you, Rolf, for suggesting this. It is a nice
complement to write var x.
This completes the capability for Jmol or JSmol to read, modify, load, and
save PNGJ and ZIP files.
1) Reading a PNGJ or ZIP file into a variable using TRUE to indicate binary
file:
x = load("test.png", TRUE)
# [x is a binary associative array]
print x.keys
*$_BINARY_$JmolManifest.txtJmol_version_14.3.16_2015.08.21__2015-08-21_09.06_IMAGE_http___cactus.nci.nih.gov_chemical_structure_caffeine_file_format_sdf_get3d_Truestate.spt*
where "$_BINARY_$" indicates that entries are byte arrays.
and _IMAGE_ is the PNG image, indicating this is from a PNGJ file
2) modifying that file if desired
# coerce to string:
s = "" + x["state.spt"]
# ...modify here...
# replace state.spt in PNGJ file data
x["state.spt"] = s
# Or, for example, adding an image that will be used for an optional
background image
x = load("test.png",true)
# a standard binary associative array will have just two keys, $BINARY$ and
_DATA_
# only PNGJ has _IMAGE_
x["z.jpg"] = load("z.jpg",true)._DATA_
print x.keys
write var x "test3.png"
....sometime later...
load "test3.png"
background image "test3.png|z.jpg"
3) write to a new PNGJ file
write var x "test2.png"
4) optionally, load that PNGJ data directly from the variable, perhaps to
see that the modifications are correct:
load var x
(new syntax; same as older *load "@x"*)
Note that both of these syntaxes work with standard string file data and
can be extended with options:
x = load("quartz.cif")
load var x {1 1 1}
Bob
------------------------------------------------------------------------------
_______________________________________________
Jmol-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-users