资源描述:
《idl 8.5中的颜色选择对话框 》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、IDL 8.5中的颜色选择对话框标签:idl8.5颜色选择颜色组件颜色对话框分类: IDL看到某位QQ好友(IDL高手)的状态改成了"苍天啊,IDL终于有颜色选择组件了"。然后我就知道该推广下了,应该有人会有这个需求。当然,这是IDL8.5新增的功能,所以…有人看到这里可能就准备接受现实了,但是我们这次相对来说是一个好消息,因为IDL提供了此功能的源代码,所以IDL8.4同样可以使用,需要进行简单的配置即可。但是因为源代码中用到了很多IDL的新特性(如变量的静态属性和静态方法、ISA的Number关键字
2、等),所以低版本如果想使用此功能,需要更改的地方太多了太多了太多了,我尝试了下,最终放弃了。有兴趣的可以尝试下。 闲言碎语不要讲,表一表IDL8.5中的颜色选择对话框的使用方法。 调用格式 Result =DIALOG_COLORPICKER([, BOX_SIZE=variable][, COLORS=array][, CUSTOM_COLORS=array][, CUSTOM_TITLE=string][, CUSTOM_OUT=variable][, DIALOG_PARENT=widget_id
3、][,/FRAMELESS][,/MODAL][, NCOLS=variable][, NROWS=variable][, PREFERRED_COLORS=array][, PREFERRED_TITLE=string][, TITLE=string][, WCALLER=variable][, XOFFSET=variable][,YOFFSET=variable] 简单介绍下关键字的含义(所有关键字均为可选关键字):关键字含义BOX_SIZE设置每一个颜色色块的大小,单位为像素COLORS自定义默
4、认颜色,输入为3×n的数组,n表示颜色个数CUSTOM_COLORS自定义新的颜色,输入为3×n的数组,n表示颜色个数CUSTOM_TITLE自定义新的颜色区域的标题CUSTOM_OUT输出用户通过界面交互新添加的颜色DIALOG_PARENT指定父组件的IDFRAMLESS使用此关键字时,界面无外边框。注:如果MODAL关键字被设定,则此关键字无效。MODAL使用此关键字,则对话框变为MODAL状态。注:此关键字需要搭配WCALLER关键字使用,否则会被忽略;如果使用了此关键字,则FRAMELESS关
5、键字被忽略。NCOLS颜色块的列数,默认为8。NROWS颜色块的行数,默认为8。PREFERRED_COLORS自定义首选颜色,输入为3×n的数组,n表示颜色个数PREFERRED_TITLE自定义首选颜色区域标题。TITLE对话框标题。默认为"SelectColor"。WCALLER设置此关键字为启动颜色选择对话框的组件ID,那么颜色选择对话框将尽可能显示在此组件的下方。XOFFSETX方向偏移量YOFFSETY方向偏移量 示例代码示例1:最简单调用方法 IDL>color= DIALOG_COLOR
6、PICKER()IDL> print,color25517529 运行效果如下图所示,可以选择Standard和Custom两种颜色模式。当选中某一个颜色时,返回color变量即为对应的R、G、B的值;如果单击关闭按钮,则返回0值。 图:颜色选择对话框示例2:修改大小、行列数 IDL>color= DIALOG_COLORPICKER(box_size=40,ncols=6,nrows=7)图:修改大小、行列号示例3:自定义默认颜色 IDL中提供了几十个自带颜色表,我们可以使用其中的颜色设定。代码如下:
7、 IDL> XLOADCT ;启动颜色表,选择第4个颜色表,如下左图IDL> TVLCT,r,g,b,/get ;获取R、G、BIDL>colors= TRANSPOSE([[r],[g],[b]],[1,0]) ;转换为3×NIDL> HELP,colorsCOLORSBYTE=Array[3,256]IDL>colors= CONGRID(colors, 3, 64) ;重采样到64个颜色IDL>color= DIALOG_COLORPICKER(colors=colors) 图:自定义默认颜色示
8、例4:添加首选、自定义颜色首选和自定义颜色分别对应PREFERRED_COLORS和CUSTOM_COLORS关键字,分别对应PREFERRED_TITLE和CUSTOM_TITLE关键字可以设置标题,这里不再演示。 示例代码如下: IDL>Cc=[[232,17,35],[12,162,16],[0,120,215],[116,17,169],[249,99,12]]IDL>Pc=[[255,0,0],[255,192,0],[255,2