IDL入门教程七(上)

第七章 图形硬拷贝输出

本章概要

在使用IDL的时候,如何以硬拷贝形式再现屏幕中的图形是最复杂,也是最难理解的问题。然而,这是大多数献身科学的人的需求,但很少有令人完全满意的方法来和同事共享科学结果。

本章将集中于PostScript输出,因为PostScript是普遍接收的一种输出媒介,大部分使用IDL的程序员都能使用PostScript打印机。所有关于PostScript的内容同样适用于其它输出设备,比如HP绘图仪和PCL打印机。

具体来说,将学习:

1. 如何选择硬拷贝输出设备 2. 如何配置硬拷贝输出设备

3. 如何将图形输出直接传送到打印机 4. 如何将图形输出传送到一个文件中 5. 如何为硬拷贝输出设备产生图形输出

6. PostScript输出与显示器的输出有什么不同 7. 如何在PostScript页面上定位图形和图像 8. 如何产生能包含在其它文档中的图形输出 9. 如何编写能很容易地转化为硬拷贝输出的程序 10. 如何在PostScript种使用颜色

选择图形硬拷贝输出设备

与设置其它图形显示设备一样,在IDL中,仍然使用Set_plot命令来设置图形硬拷贝输出设备: Set_Plot, 'option'

其中的option是下列的任何一种,注意option总是一个字符串,因此要使用单引号括起来。与IDL其它大多数字符串不一样,option对大小写不敏感。

CGM 输出写入CGM(计算机图形元文件)格式的文件中,CGM也是一种独立于

设备的文件格式,用于交换图形信息。CGM文件能以三种形式之一编码:(1)文本,(2)二进制数据,(3)NCAR二进制数据。

HP 输出以惠普图形语言(HP-GL)格式写入一个文件,它适用于各种各样的

HP-GL笔式绘图仪。

PCL 输出以惠普打印机控制语言(PCL)格式写入一个文件,它适用于各式激光

和喷墨打印机。

PRINTER 输出以任何适合于默认打印机的方式直接传送到该打印机。 PS 输出以PostScript格式写入一个文件中。 Z 输出被写入Z图形缓冲区。

在打印完毕后,应再次使用Set_plot命令将输出设备改回为图形显示设备的类型,以下是一些常用的显示设备:

WIN 使用微软Windows或NT操作系统的个人计算机。 MAC 使用MacOS操作系统的计算机 X 使用X Window系统的计算机。 只有一种设备能成为当前图形设备,可以通过检查!D.Name系统变量来确定当前的设备是哪种,如下:

IDL>Print,!D.Name

注意,当设定设备名时,设备名对大小写不敏感,但当在代码中使用该名字时,就不一定不敏感了。存储在!D.Name系统变量中的图形设备名是以大写字母形式存储的。这在下面的字符串比较语句中尤为重要:

IDL>IF !D.Name EQ 'PS' THEN Print,'Using PostScript?'

配置图形硬拷贝输出设备

一旦选定了图形输出设备,所有设备具体的配置参数都用Device命令通过关键字来控制。Device命令可用的关键字主要取决于当前的设备。但打印设备(总是和默认的打印机相连)的设置也可以使用Dialog_PrinterSetup命令来设置(详见201页的“配置和使用打印设备”)。

测定当前的设备配置

使用Help命令,可以知道当前硬拷贝输出设备所设定的配置参数,如下:

IDL>Help,/Device

将能看到一系列的有关当前图形设备的当前设置参数及其参数值。这些信息可以用来配置设备。关于设备可用的颜色数,IDL使用的是哪种图形函数以及当前选择的硬件字体等等信息,都取决于所设定的当前设备是何种设备。

注意,这些信息的显示随着每个硬拷贝输出选项的不同而不同。例如,键入下面这些命令来看PostScript输出设备缺省配置如何:

IDL>thisDevice=!D,Name IDL>Set_Plot,'PS' IDL>Help, /Device

IDL>Set_Plot, thisDevice

以下为Help命令的显示结果(在Windows NT机器上):

Available Graphics Devices: CGM HP NULL PCL PRINTER PS WIN Z Current graphics device: PS File:

Mode: Portrait, Non-Encapsulated, EPSI Preview Disabled, Color Disabled Offset (X,Y): (1.905,12.7) cm., (0.75,5) in. Size (X,Y): (17.78,12.7) cm., (7,5) in. Scale Factor: 1 Font Size: 12

Font Encoding: AdobeStandard

Font: Helvetica TrueType Font: # bits per image pixel: 4 Font Mapping:

(!3) Helvetica (!4) Helvetica-Bold (!5) Helvetica-Narrow (!6) Helvetica-Narrow-BoldOblique

(!7) Times-Roman (!8) Times-BoldItalic (!9) Symbol (!10) ZapfDingbats

(!11) Courier (!12) Courier-Oblique (!13) Palatino-Roman (!14) Palatino-Italic (!15) Palatino-Bold (!16) Palatino-BoldItalic (!17) AvantGarde-Book (!18) NewCenturySchlbk-Roman (!19) NewCenturySchlbk-Bold (!20)

常用的Device命令关键字

大部分输出设备能允许以下关键字被用于Device命令(Z 设备例外)。以下为想要知道的关键字。对于某个特定输出设备所使用的其它关键字可以查阅IDL在线文档资料。例如,PS设备能接受将近50种不同的关键字。

Close_Document 这个关键字在刷新了输出缓冲区后关闭图形文档。它被用于从打印

机中排出打印页(使用Printer设备时)。

Close_File 这个关键字在刷新了缓冲区之后关闭该图形输出文件。

Filename 图形输出设备如果是将输出写入一个文件时有一个缺省文件名。如

果没有指定文件名时就使用该文件。一般情况下,该文件名为idl.option,option是所选择的硬拷贝输出设备类型。但也可以使用此关键字指定一个文件名来更改它。例如:

IDL>Device,Filename='surface.eps'

Inches 如果设置了这个关键字,那么关键字XSize、YSize、XOffSet和

YoffSet及其设置都被认为是以英寸为单位而不是以缺省的厘米为单位来给定的。

IDL>Device,XSize=4.0,/Inches

若要回到以厘米为单位来设定尺寸和偏移量,用: IDL>Device,Inches=0

Landscape 该关键字表示在纸的横向上输出。

Portrait 该关键字表示在纸的纵向上输出。这是缺省值。

XOffSet 该关键字确定输出的显示窗口的左下角在纸上的X方向上位置(在

纵向模式下)。关于横向模式下的位置详见199页的“计算 PostScript在横向模式下的偏移量”。

XSize 该关键字确定输出显示窗口在纸上的宽度。

YOffSet 该关键字确定输出的显示窗口的左下角在纸上的Y方向上位置(在

纵向模式下)。关于横向模式下的位置详见199页的“计算 PostScript在横向模式下的偏移量”。

YSize 该关键字确定输出显示窗口在纸上的高度。 IDL>Device,XSize=4.0,YSize=7.0,/Inches 注意一旦在图形输出设备上设定了某个关键字的值,该参数将一直有效,直到显式地更

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4