Coyote Graphics Routines

Date: Fri Mar 27 12:14:20 2015

single page | use frames     summary     class     fields     routine details     file attributes

.\

cgps_close.pro


top cgPS_Close

Utilities, Graphics

cgPS_Close [, /ALLOW_TRANSPARENT] [, /BMP] [, /DELETE_PS] [, DENSITY=integer] [, FILETYPE=string] [, /GIF] [, GS_PATH=string] [, HEIGHT=integer] [, IM_OPTIONS=string] [, /JPEG] [, /NOFIX] [, /NOMESSAGE] [, OUTFILENAME=string] [, /PDF] [, /PNG] [, RESIZE=integer] [, /SHOWCMD] [, /TIFF] [, UNIX_CONVERT_CMD=string] [, WIDTH=integer]

The purpose of cgPS_Open and cgPS_Close is to make it easy to set-up and close a PostScript file. These programs are used extensively in all Coyote Graphics routines.

If ImageMagick is installed on your computer, you can easily convert PostScript output to GIF, JPEG, PNG, and TIFF raster output. If Ghostscript is installed you can convert PostScript output to PDF files. See the appropriate keywords below.

When cgPS_Open is called, the current graphics device is set to "PS" (the PostScript device). When cgPS_Close is called the current graphics device is returned to the device in effect when cgPS_Open was called.

Keywords

ALLOW_TRANSPARENT in optional type=boolean default=0

To make the background of some image files white, rather than transparent, you have to set the "-alpha off" string in the ImageMagick call. This string is automatically added to the ImageMagick call unless this keyword is set, in which case the string is not added and the image background will be transparent.

BMP in optional type=boolean default=0

Set this keyword to convert the PostScript output file to a BMP image. Requires ImageMagick.

DELETE_PS in optional type=boolean default=0

Setting this keyword will delete the PostScript file that is used as the intermediate file in the conversion to other file types.

DENSITY in optional type=integer default=300

The horizontal and vertical density (in dots per inch, DPI) of the image when the PostScript file is converted to a raster format by ImageMagick.

FILETYPE in optional type=string

This keyword provides a generic way of setting the BMP, GIF, JPEG, PNG, and TIFF keywords. Set this keyword to the type of file output desired, and the correct "output" keyword will be set.

GIF in optional type=boolean default=0

Set this keyword to convert the PostScript output file to a GIF image. Requires ImageMagick.

GS_PATH in optional type=string

This program assumes that UNIX users can access Ghostscript with the "gs" command. It assumes WINDOWS users have installed Ghostscript in either the C:\gs or C:\Program Files\gs directories. If either of these assumptions is incorrect, you can specify the directory where the Ghostscript executable resides with this keyword. (The Windows 32-bit executable is named gswin32c.exe and the 64-bit executable is named gswin64c.exe.) Passed directly to cgPS2PDF.

HEIGHT in optional type=integer

Set the keyword to the final pixel hight of the output raster image. Applies only to raster image file output (e.g., JPEG, PNG, TIFF, etc.). The width of the image is chosen to preserve the image aspect ratio. Cannot use with the Width keyword.

IM_OPTIONS in optional type=string

A string of ImageMagick "convert" options that can be passed to the ImageMagick convert command. No error checking occurs with this string.

JPEG in optional type=boolean default=0

Set this keyword to convert the PostScript output file to a JPEG image. Requires ImageMagick.

NOFIX in optional type=boolean default=0

If this keyword is set, then the cgFixPS program to fix IDL landscape PostScript files is not called.

NOMESSAGE in optional type=boolean default=0

If this keyword is set, then no error messages are issued. The keyword is used primarily to allow cgPS_Close to reset the internal structure without a lot of ruckus.

OUTFILENAME out optional type=string

The name of the output filename created by the program.

PDF in optional type=boolean default=0

Set this keyword to convert the PostScript output file to a PDF file. Requires Ghostscript.

PNG in optional type=boolean default=0

Set this keyword to convert the PostScript output file to a PNG image. Requires ImageMagick. Normally, 24-bit PNG files are created. However, if the IM_PNG8 keyword is set with cgWindow_SetDefs, then cgPS_Close will create an 8-bit PNG file instead.

RESIZE in optional type=integer default=25

If an image is being created from the PostScript file, it is often resized by some amount. You can use this keyword to change the value (e.g, RESIZE=100). The value is passed on to resize argument as a percentage in the ImageMagick call.

SHOWCMD in optional type=boolean default=0

Set this command to show the command used to do any PostScript coversions.

TIFF in optional type=boolean default=0

Set this keyword to convert the PostScript output file to a TIFF image. Requires ImageMagick.

UNIX_CONVERT_CMD in optional type=string

There are a number of commands on UNIX machines for converting PostScript files to PDF files. This program assumes you are using Ghostscript to do the conversion for you. The Ghostscript command on most UNIX machines is "gs", which is used if this keyword is undefined. However, if you would prefer to use another program to do the conversion for you, you can specify the name of the command here. For example, "pstopdf" or "epstopdf". In creating the actual command, this command will be separated by a space from the input file name. In other words, if the alternative conversion command was "pstopdf", the actual command would be "pstopdf" + " " + ps_file. Any output filename is ignored. This command does not apply to Macintosh or Windows computers. Passed directly to cgPS2PDF.

WIDTH in optional type=integer

Set the keyword to the final pixel width of the output raster image. Applies only to raster image file output (e.g., JPEG, PNG, TIFF, etc.). The height of the image is chosen to preserve the image aspect ratio. Cannot use with the Height keyword.

Examples

To create a line plot in a PostScript file named lineplot.ps and also create a PNG file named lineplot.png for display in a browser, type these commands:

cgPS_Open, 'lineplot.ps' cgPlot, Findgen(11), COLOR='navy', XTITLE='Time', YTITLE='Signal' cgPS_Close, /PNG
If you just want the raster file, without a PostScript file, it is simpler to just specify the type of file you want with cgPS_Open. Here we create a JPEG file. The intermediate PostScript file is deleted once the JPEG file is created:
cgPS_Open, 'lineplot.jpg' cgPlot, Findgen(11), COLOR='navy', XTITLE='Time', YTITLE='Signal' cgPS_Close An example using the UNIX epstopdf command instead of an ImageMagick command to create a PDF file:
cgPS_Open, 'lineplot.eps', /DECOMPOSED cgPlot, Findgen(11), COLOR='navy', XTITLE='Time', YTITLE='Signal' cgPS_Close, /PDF, UNIX_CONVERT_CMD='epstopdf --autorotate=All'

Author information

Author:

FANNING SOFTWARE CONSULTING:

David W. Fanning 1645 Sheely Drive Fort Collins, CO 80526 USA Phone: 970-221-0438 E-mail: david@idlcoyote.com Coyote's Guide to IDL Programming: http://www.idlcoyote.com

Copyright:

Copyright (c) 2008-2014, Fanning Software Consulting, Inc.

History:

Change History:

Written by: David W. Fanning, 20 May 2008. Slight modification to allow filenames with spaces in them. Added NoMatch keyword. 17 March 2009. DWF. Added a number of keywords to make these commands more configurable. 19 March 2009. DWF. Only set thickness system variables if starting system variables are set to their default values (namely, 0). This allows users to set their own system variables before they call PS_START, rather than after. 23 March 2009. DWF. Moved PS_END to its own file to allow the IDLExBr_Assistant to work properly. 7 April 2009. DWF. Reordered ImageMagick commands to put them in the proper sequence to get "alpha" switch to work. 23 April 2009. DWF. Put the switches *ahead* of the PostScript file name. Now resizing works and default size reduction returned to 25%. 23 April 2009. DWF. Still having a devil of a time getting the ImageMagick "convert" command right. Fonts have become a problem. Now trying a "flatten" option in the command. 12 May 2009. DWF. If the PostScript file is in Landscape mode, it is now "fixed" with cgFixPS to allow it to be displayed right-side up in PostScript viewers. 8 August 2009. DWF. Fixed a problem in not checking the GIF keyword properly. 4 December 2009. DWF. Added NOFIX keyword to the program. 1 November 2010. DWF. Added better handing of errors coming from cgFixPS after update to FIXPS. 15 November 2010. DWF. Added DELETE_PS keyword. 16 Jan 2011. DWF. Better protection of code from not finding ImageMagick. 17 Jan 2011. DWF. Collecting result of SPAWN command. Only printing if QUIET=0. 16 Feb 2011. DWF. Changes to handle inability to create raster files from PS encapsulated files in landscape mode. Added NOMESSAGE keyword. 26 Aug 2011. DWF. Added PDF keyword. Requires Ghostscript to use. 6 Dec 2011. DWF. Added SHOWCMD keyword. 9 Dec 2011. DWF. Added OUTFILENAME keyword. 11 Dec 2011. DWF. Just realized a BMP case is missing from one of the CASE statements. 12 Dec 2011. DWF. Added GS_PATH and UNIX_CONVERT_CMD keywords to support PDF output. 14 Dec 2011. DWF. Add the WIDTH keyword. 3 April 2012. DWF. Added a check for IM_PNG8 keyword, using cgWindow_GetDefs to see if an 8-bit or 24-bit PNG file should be created. 3 April 2012. DWF. Modified the ImageMagick commands that resizes the image to a particular width. Necessary to accommodate PNG8 file output. Using ImageMagick 6.7.2-9. 4 April 2012. DWF. Added FILETYPE keyword to provide a generic way of creating raster file output. 30 August 2012. DWF. Modified to use the cgPS2Raster program so code doesn't have to be maintained in two places. 15 Oct 2012. DWF. Added a check for ImageMagick and an informational message for raster operations. 4 Nov 2012. DWF. Fixed a problem in which the NOMESSAGE keyword was not getting passed along to cgPS2Raster. 5 Nov 2012. DWF. Fixed a problem where I was not passing the PORTRAIT keyword to cgPS2Raster properly. 22 Jan 2013. DWF. Modified to restore the input True-Type font for PostScript devices. 22 May 2013. DWF. Can now create raster file output directly from the input filename of cgPS_Open. 29 Nov 2013. DWF. The program wasn't picking up default values from cgWindow_GetDefs. 22 Jan 2014. DWF. Added HEIGHT keyword. 20 Feb 2014. DWF. Was not passing the QUIET flag from cgPS_Open on to cgPS2Raster correctly. Fixed. 28 Feb 2014. DWF. Modified to call cgPS2PDF directly for PDF output. Required because UNIX_CONVERT_CMD isn't passed through cgPS2Raster. 6 March 2014. DWF.

File attributes

Modification date: Fri Mar 27 11:07:35 2015
Lines: 390
Docformat: rst rst