📄 00000003.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER> <BR> 第14章 定义和使用位元映像 <BR> <BR> <BR> 一个位元映像是一个小图,说得更清楚一点,一个图的显现是由像素组成, <BR>而像素又是由一个位元来对应,当位元为”1 ”时,像素为”黑色”,而当位 <BR>元为”0 ”时,像素为”白色”。X有许多的公用程式来管理位元映像,你可 <BR>以用不同的方法来建立、编辑和储存它们。有一些使用者程式允许你直接使用 <BR>它们。(其它大部份的程式则以内部的形式使用它们,这些公用程式大都放在 <BR>X程式库中,使得使用者撰写程式时很容易便可加以运用。) <BR> <BR> 本章开始先描述位元映像的工具,接下来实际使用xsetroot程式,它可以 <BR>让你定制你的萤幕,设定一个位元映像的背景,选择你的色彩和指定一个位元 <BR>映像当作游标来使用。 <BR> <BR> <BR>14.1 系统位元映像程式馆 <BR> <BR> 位元映像档案的程式馆被当作系统的一部份提供给你,预设储存在这个目 <BR>录: <BR> <BR> /usr/include/x11/bitmaps <BR> <BR>但在你的工作站上或许不同,问一下你的系统的装置者,我们将以此目录为准, <BR>并用其中的一些档案作为本章的□例。 <BR> <BR> <BR>14.2 交谈式地编辑一个位元映像 -- bitmap <BR> <BR> bitmap程式是一个让你以交谈式建立或编辑位元映像的工具,它将位元映 <BR>像以方格子来表示,每一个格子代表一个像素,你可以用滑鼠设定或清除像素。 <BR> <BR> <BR> 14.2.1 启动bitmap <BR> <BR> 透过bitmap你可以编辑一个包含有一个位元映像的档案,或从头开始建立 <BR>一个位元映像并将它储存为档案。不论是何者,当你启动bitmap时,你需要给 <BR>一个档案名称,不论是现存的档案或是新建的档案。 <BR> <BR> 当建立一个新的位元映像时,你可以选择性地指定大小(宽度X 长度个像 <BR>素),如果你未指定,预设大小为16X16 。举例来说,假如我们想要建立一个 <BR>比较大一点的十字型数位映像,我们可以用下面的命令列: <BR> <BR> bitmap big-cross 40X50 & <BR> <BR> <BR>14.2.2 使用 bitmap <BR> <BR> 假如我们要编辑一个现存的档案,可以用下面的命令列启动程式: <BR> <BR> bitmap /usr/include/x11/bitmaps/cntr-ptr <BR> <BR>则一个像图14-1的视窗出现在萤幕上,右下角以实际大小显示出目前位元映像 <BR>的状态,另一个则为反相(reverse) 的位元映像,其它在右边的”盒”你可以 <BR>用碰触滑鼠按钮的方式来操作它们。 <BR> <BR>用三钮滑鼠编辑图形最简单的方法: <BR> <BR> 设定像素:在一个像素上碰触滑鼠左按钮,或者是按住左按钮并拖拽它, <BR> 每一个经过的像素方格均会被设定,直到松开按钮为止。 <BR> <BR> 清除像素:和上述相同的方法,但是以滑鼠右按钮代替。 <BR> <BR> 反转(invert)像素:在一个像素上碰触滑鼠中按钮(也就是黑的像素被清 <BR> 除而白的像素被设定),当你按住中按钮并拖拽,所经过的像 <BR> 素格均会反转。 <BR> <BR> <BR> ┌————————————————————┐ <BR> │ p160 fig 14.1 │ <BR> │ │ <BR> │ 图14-1 位元映像编辑器 │ <BR> └————————————————————┘ <BR> <BR> bitmap还有其它的面貌:如果你观察接近箭头的上端部份(见图14-2的 <BR>放大图),你可以在其中的一个方格中看到有一个小菱形,这代表了热点(hotspot) <BR>,当bitmap被用来建造一个游标时会应用到:热点是游标真正动作的点。指向 <BR>型的游标,热点通常在顶端,而圆形或方形的游标,热点则在中心。(你可以 <BR>用Set Hot Spot和Clear Hot Spot两个命令来更改热点的位置或消去它) <BR> <BR> 当你结束了你的更改动作,可以用碰触Write Output将位元映像储存至档 <BR>案,但不会离开bitmap程式。 <BR> <BR> ┌————————————————————┐ <BR> │ p161 fig 14.2 │ <BR> │ │ <BR> │ 图14-2 一个游标的”热点” │ <BR> └————————————————————┘ <BR> <BR> 离开程式,碰触Quit,如果你编辑了位元映像却试图在未储存前离开程式, <BR>你将会得到提示以确定你是否真要如此做。 <BR> <BR> <BR> 14.2.3 画形状(shapes) <BR> <BR> bitmap有数个功能使得画图更容易: <BR> <BR> 画一条线:碰触Line,游标会变成一个大黑点,在所欲画的线的一端碰触 <BR> 一下按钮,而後在另一端也碰触一下,bitmap会画出这条线。 <BR> <BR> 画一个中空的圆:碰触Circle,同样地,游标变成一个大黑点,在你所欲 <BR> 画圆的圆心碰触一下,而後在所欲画圆之圆周上的任一点碰触 <BR> 一下,bitmap将画出这个圆的圆周。 <BR> <BR> 画一个填满的圆:碰触Filled Circle ,其馀同上。 <BR> <BR> <BR> 14.2.4 在长方形的区域内工作 <BR> <BR> 命令Clear Area、Set Area和Invert Area 必须在长方形区域下操作,长 <BR>方形区域的决定方式是你在它的左上角以按住滑鼠任意按钮的方式指定,然後 <BR>拖拽到右下角,当你拖拽时,目前被指定的区域会以高亮度显示。 <BR> <BR> 你可以拷贝、移动或重叠(overlay) 一个区域,你以拖拽的方式指定原始 <BR>区域,而後在目标区域上的左上角碰触按钮,各种命令的动作如下: <BR> <BR> 拷贝(Copy):目标区域会被消除,而所有对应於原始区域为黑像素的 <BR> 均会被设定。 <BR> <BR> 移动(Move):原始区域和目标区域均被清除,目标区域对应於原始区 <BR> 域为黑像素的均会被设定。 <BR> <BR> 重叠(Overlay) :在目标区域中对应於原始区域被设定的像素均会被 <BR> 设定,其它没有改变。 <BR> <BR> <BR> 14.2.5 一个位元映像的档案格式 <BR> <BR> 一个位元映像会如同ASCII 文字一样储存到档案中,其格式类似C 语言程 <BR>式片段。 <BR> <BR> 例如:档案 /usr/include/X11/bitmaps/cntr_ptr 的内容: <BR> <BR> #define cntr_ptr_width 16 <BR> #define cntr_ptr_height 16 <BR> #define cntr_ptr_x_hot 7 <BR> #define cntr_ptr_y_hot 1 <BR> static char cntr_ptr_bits[]= <BR> 0x00, 0x00, 0x80, 0x01, 0x80, 0x01,\ <BR> 0xc0, 0x03, 0xc0, 0x03, 0xe0, 0x07, <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -