📄 00000007.htm
字号:
<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> 0xe0, 0x07, 0xf0, 0x0f, 0xf0, 0x0f,\ <BR> 0x98, 0x19, 0x88, 0x11, 0x80, 0x01, <BR> 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,\ <BR> 0x00, 0x00; <BR> <BR> 带有_x_hot和_y_hot的变数仅在热点被指定後才会包含进来。 <BR> <BR> 更多的细节包含在bitmap(1) 的指南页中,不过无论如何,你毋需直接以 <BR>此种格式处理位元映像,任何你想要做的事均有工具程式来处理。 <BR> <BR> <BR>14.3 编辑位元映像其它的方法 <BR> <BR> bitmap程式对於一个小的图形工作起来算是相当方便,但它有一些缺点: <BR> <BR> .它不接受较简单格式的输入档,例如像一些由扫描现存图形所产生的档案。 <BR> <BR> .它必需以交谈式执行,对一些程序性的编辑动作并不方便。 <BR> <BR> .你可能希望用它产生一些位元映像来显示,但它无法在非X系统上执行。 <BR> <BR> 要克服上述的问题,需要以字元图(character picture) 的形式来建立位 <BR>元映像,并提供这个格式和bitmap的格式相互转换的程式。字元图格式是非常 <BR>明显的:每一行的像素用一行的字元来表示,黑的像素用一个指定的字元(预 <BR>设为# )而白的像素用另一个字元(预设为 -)表示,以cntr_ptr为例,字元 <BR>图的格式如图14-3 <BR> <BR> ┌————————————————————┐ <BR> │ p164 fig 14.3 │ <BR> │ │ <BR> │ 图14-3 字元图格式的位元映像 │ <BR> └————————————————————┘ <BR> <BR> 你能以本文编辑器或其它任何系统上任何其它合适的程式编辑这些图形, <BR>也可以由扫描器(scanner) 或其它影像设备产生。 <BR> <BR> <BR>14.3.1 字元图和X位元映像间的转换 <BR> <BR> X提供了两个程式作字元图格式和位元映像格式间的转换: <BR> <BR> atobm : 转换一个字元图为标准的位元映像。 <BR> <BR> bmtoa : 转换一个标准的位元映像为字元图。 <BR> <BR> 两个程式均允许你指定以何字元来代表黑和白像素。 <BR> <BR> <BR>14.4 定制你的根视窗&
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -