source: trunk/exports/G2export_image.py

Last change on this file was 3136, checked in by vondreele, 5 years ago

make GSAS-II python 3.6 compliant & preserve python 2.7 use;changes:
do from future import division, print_function for all GSAS-II py sources
all menu items revised to be py 2.7/3.6 compliant
all wx.OPEN --> wx.FD_OPEN in file dialogs
all integer divides (typically for image pixel math) made explicit with ; ambiguous ones made floats as appropriate
all print "stuff" --> print (stuff)
all print >> pFile,'stuff' --> pFile.writeCIFtemplate('stuff')
all read file opens made explicit 'r' or 'rb'
all cPickle imports made for py2.7 or 3.6 as cPickle or _pickle; test for '2' platform.version_tuple[0] for py 2.7
define cPickleload to select load(fp) or load(fp,encoding='latin-1') for loading gpx files; provides cross compatibility between py 2.7/3.6 gpx files
make dict.keys() as explicit list(dict.keys()) as needed (NB: possible source of remaining py3.6 bugs)
make zip(a,b) as explicit list(zip(a,b)) as needed (NB: possible source of remaining py3.6 bugs)
select unichr/chr according test for '2' platform.version_tuple[0] for py 2.7 (G2pwdGUI * G2plot) for special characters
select wg.EVT_GRID_CELL_CHANGE (classic) or wg.EVT_GRID_CELL_CHANGED (phoenix) in grid Bind
maxint --> maxsize; used in random number stuff
raise Exception,"stuff" --> raise Exception("stuff")
wx 'classic' sizer.DeleteWindows?() or 'phoenix' sizer.Clear(True)
wx 'classic' SetToolTipString?(text) or 'phoenix' SetToolTip?(wx.ToolTip?(text)); define SetToolTipString?(self,text) to handle the choice in plots
status.SetFields? --> status.SetStatusText?
'classic' AddSimpleTool? or 'phoenix' self.AddTool? for plot toolbar; Bind different as well
define GetItemPydata? as it doesn't exist in wx 'phoenix'
allow python versions 2.7 & 3.6 to run GSAS-II
Bind override commented out - no logging capability (NB: remove all logging code?)
all import ContentsValidator? open filename & test if valid then close; filepointer removed from Reader
binary importers (mostly images) test for 'byte' type & convert as needed to satisfy py 3.6 str/byte rules

  • Property svn:eol-style set to native
  • Property svn:keywords set to Date Author Revision URL Id
File size: 1.9 KB
Line 
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3########### SVN repository information ###################
4# $Date: 2017-10-23 16:39:16 +0000 (Mon, 23 Oct 2017) $
5# $Author: toby $
6# $Revision: 3136 $
7# $URL: trunk/exports/G2export_image.py $
8# $Id: G2export_image.py 3136 2017-10-23 16:39:16Z toby $
9########### SVN repository information ###################
10'''
11*Module G2export_image: 2D Image data export*
12------------------------------------------------------
13
14Demonstrates how an image is retrieved and written. Uses
15a SciPy routine to write a PNG format file.
16'''
17from __future__ import division, print_function
18import os.path
19import scipy.misc
20import GSASIIpath
21GSASIIpath.SetVersionNumber("$Revision: 3136 $")
22import GSASIIIO as G2IO
23
24class ExportImagePNG(G2IO.ExportBaseclass):
25    '''Used to create a PNG file for a GSAS-II image
26
27    :param wx.Frame G2frame: reference to main GSAS-II frame
28    '''
29    def __init__(self,G2frame):
30        super(self.__class__,self).__init__( # fancy way to say <parentclass>.__init__
31            G2frame=G2frame,
32            formatName = 'PNG image file',
33            extension='.png',
34            longFormatName = 'Export image in PNG format'
35            )
36        self.exporttype = ['image']
37        #self.multiple = True
38    def Exporter(self,event=None):
39        '''Export an image
40        '''
41        # the export process starts here
42        self.InitExport(event)
43        # load all of the tree into a set of dicts
44        self.loadTree()
45        if self.ExportSelect(): return # select one image; ask for a file name
46        # process the selected image(s) (at present only one image)
47        for i in sorted(self.histnam): 
48            filename = os.path.join(
49                self.dirname,
50                os.path.splitext(self.filename)[0] + self.extension
51                )
52            imgFile = self.Histograms[i].get('Data',(None,None))
53            Comments,Data,Npix,Image = G2IO.GetImageData(self.G2frame,imgFile)
54            scipy.misc.imsave(filename,Image)
55            print('Image '+imgFile+' written to file '+filename)
56           
Note: See TracBrowser for help on using the repository browser.