Hi Warren, i have just updated the stpng() function that generates stereo figures. the function can be called with
contrib.stpng('filename.ext') it supports a wide range of image formats, which are chosen by the extension of the image file (ie. .png .tif .ps .pdf .gif .jpg etc...). contrib.stpng() requires the Python Image Library (PIL) to merge the left and right images, but the last part of the code can be commented out on systems that dont have PIL installed. in that case left and right images are still generated 'filename_left.png, filename_right.png', but not merged. the function has been tested with the binary version of pymol_0.78 rh7.2 and python2.1 on a Linux system (SuSE7.3) . The function is installed by replacing pymol/modules/pymol/contrib.py with the attached file and please ensure that PIL (ie. /usr/lib/python/site-packages/PIL) is included in your python path. cheers peter :) ___________________________________________ Peter Haebel Institute for Molecular Biology and Biophysics ETH Hoenggerberg, HPK H 11 CH-8037 Zurich Phone: +41 1 63-33960 Fax: +41 1 633-1246 Email: peter.hae...@mol.biol.ethz.ch
# Contributed functionality which is either # untested or considered unsupported by # DeLano Scientific import os import pymol import cmd # contrib.stpng('filename.ext') generates stereo figure of current view # # The image format is determined by the extension of the image filename. # Supported formats: .png .jpg .tif .pdf .gif .ps etc... # # NOTE: Requires the Python Image Library. If PIL is not installed # remove the second part of the code (see below!) and merge the # left and right images in an external program. # # Tested on SuSE linux 7.3, Python 2.1, PIL # Contributed by P. Haebel def stpng(filename="stereo.png"): filename=str(filename) leftfile="%s_left.png"%filename rightfile="%s_right.png"%filename # render left image and save as 'filename_left.png' print "Rendering %s"%leftfile cmd.turn("y","3") cmd.ray() cmd.png(leftfile) # render right image and save as 'filename_right.png' print "Rendering %s"%rightfile cmd.turn("y","-6") cmd.ray() cmd.png(rightfile) # reset original view cmd.turn("y","3") ############################################################ # Requires Python PIL # remove following lines if you dont have PIL installed # Import Pyhton Image Library import Image # Open left and right images and determine the image size leftim=Image.open(leftfile) rightim=Image.open(rightfile) size=leftim.size # Set size of new stereo figure and define location of left and right # stereo images in the new figure sizex=size[0] sizey=size[1] stsizex=2*sizex stsizey=sizey stsize=(stsizex,stsizey) leftbox=(0,0,sizex,sizey) rightbox=(sizex,0,stsizex,stsizey) # Create new 'empty' stereo image stereoim=Image.new("RGB",stsize) # Paste left and right images into new stereo image stereoim.paste(leftim,leftbox) stereoim.paste(rightim,rightbox) # Save stereo image - file format is automatically derived from the # extension of the filename (i.e. png,jpg,tif,pdf) stereoim.save(filename) print "Saved stereo image:%s"%filename # Remove temporary left and right image files os.remove(leftfile) os.remove(rightfile) # end of section to remove ##############################################################