def get_figure(self): log.debug("running wmsvis.get_figure") # Use .copy() on params to get a *writeable* MultiDict instance params = request.params.copy() log.debug("params = %s" % (params,)) # The response headers must be strings, not unicode, for modwsgi - # ensure that the format is a string, omitting any non-ASCII # characters. format = params.pop('figFormat', 'image/png') formatStr = format.encode('ascii', 'ignore') finalImage = build_figure(params) buffer = StringIO() finalImage.save(buffer, self._pilImageFormats[formatStr]) response.headers['Content-Type'] = formatStr # Remove headers that prevent browser caching, otherwise IE will not # allow the image to be saved in its original format. if 'Cache-Control' in response.headers: del response.headers['Cache-Control'] if 'Pragma' in response.headers: del response.headers['Pragma'] return buffer.getvalue()
def get_figure(self): """Creates and returns a figure. """ log.debug("running viewdata.get_figure") # Use .copy() on params to get a writeable MultiDict instance params = request.params.copy() log.debug("params = %s" % (params,)) # The response headers must be strings, not unicode, for modwsgi - # ensure that the format is a string, omitting any non-ASCII # characters. format = params.pop("figFormat", "image/png") formatStr = format.encode("ascii", "ignore") # Default to the "viewdata" style for captions. if not "figure-style" in params: params["figure-style"] = "viewdata" try: finalImage = build_figure(params, self._get_session_endpoint_data()) buffer = StringIO() finalImage.save(buffer, self._pilImageFormats[formatStr]) response.headers["Content-Type"] = formatStr # Remove headers that prevent browser caching, otherwise IE will not # allow the image to be saved in its original format. if "Cache-Control" in response.headers: del response.headers["Cache-Control"] if "Pragma" in response.headers: del response.headers["Pragma"] return buffer.getvalue() except Exception, exc: response.content_type = "text/plain" return exc.__str__() + "\n"