atobm bitmap, bmtoa, atobm - X Window 系统的位图编辑器和转换器实用程序
bitmap [ -options . . . ] [ filename ] [ basename ]
bmtoa [ -chars . . . ] [ filename ]
atobm [ -chars cc ] [ -name variable ] [ -xhot number ] [ -yhot number ] [ filename ]
位图程序是一个基本工具,用于创建或编辑由 1 和 0 组成的矩形图像。位图在 X 中用于定义剪切区域、光标形状、图标形状以及平铺和点画图案。
bmtoa 和 atobm 过滤器将位图 文件(文件格式)与 ASCII 字符串相互转换。它们最常用于快速打印位图和生成包含在文本中的版本。
Bitmap 支持标准 X Toolkit 命令行参数(请参阅X(7))。还支持以下附加参数。
指定网格的大小(以正方形为单位)。
指定正方形的宽度(以像素为单位)。
指定正方形的高度(以像素为单位)。
网格容差。如果正方形尺寸低于指定值,网格将自动关闭。
打开或关闭网格线。
打开或关闭主轴。
打开或关闭框架和网格线的虚线。
打开或关闭突出显示的方块的点画。
打开或关闭比例模式。如果比例模式打开,正方形宽度等于正方形高度。如果比例模式关闭,位图将使用较小的正方形尺寸(如果它们最初不同)。
指定用作虚线点画的位图。
指定用作突出显示点画的位图。
指定用于突出显示的颜色。
指定用于框架和网格线的颜色。
指定最初加载到程序中的位图。如果文件不存在,位图将假定它是一个新文件。
指定要在 C 代码输出文件中使用的基本名称。如果它与工作文件中的基本名称不同,位图将在保存文件时更改它。
Bmtoa 接受以下选项:
此选项指定在位图的字符串版本中使用的字符对。第一个字符用于 0 位,第二个字符用于 1 位。默认情况下,使用破折号 (-) 表示 0,使用尖号 (#) 表示 1。
Atobm 接受以下选项:
此选项指定将字符串位图转换为数字数组时要使用的字符对。第一个字符代表 0 位,第二个字符代表 1 位。默认情况下,使用破折号 (-) 表示 0,使用尖号 (#) 表示 1。
该选项指定写出位图文件时要使用的变量名称。默认是使用文件名命令行参数的基本名称,或者如果读取标准输入则将其留空。
该选项指定热点的 X 坐标。只允许正值。默认情况下,不包含热点信息。
该选项指定热点的 Y 坐标。只允许正值。默认情况下,不包含热点信息。
位图显示网格,其中每个方块代表正在编辑的图片中的单个位。位图图像的实际大小(正常显示和反转显示)可以通过按 Meta-I 键获得。您可以自由地将图像弹出窗口移开以继续编辑。在弹出窗口中按鼠标左键或再次按Meta-I将删除实际尺寸的位图图像。
如果位图用于定义光标,则图像中的方块之一可以被指定为热点。这决定了光标实际指向的位置。对于具有尖锐尖端(例如箭头或手指)的光标,这通常位于尖端的末端;对于对称光标(例如十字光标或牛眼光标),该光标通常位于中心。
位图存储为适合包含在应用程序中的小型 C 代码片段。它们提供了一个位数组以及符号常量,给出了可用于创建光标、图标和图块的宽度、高度和热点(如果指定)。
要编辑位图图像,只需单击具有绘图命令(点、曲线、直线、矩形等)的按钮之一,然后将指针移至位图网格窗口中。按下鼠标上的按钮之一,就会发生适当的操作。您可以设置、清除或反转网格方块。设置网格方块对应于将位图图像中的一位设置为 1。清除网格方块对应于将位图图像中的一位设置为 0。反转网格方块对应于将位图图像中的一位从 0 更改为 1 或1 到 0,取决于其之前的状态。鼠标按钮的默认行为如下所示。
MouseButton1 Set
MouseButton2 Invert
MouseButton3 Clear
MouseButton4 Clear
MouseButton5 Clear可以通过设置按钮功能资源来更改此默认行为。下面提供了一个示例。
bitmap*button1Function: Set
bitmap*button2Function: Clear
bitmap*button3Function: Invert
etc.该按钮功能适用于所有绘图命令,包括复制、移动和粘贴、洪水填充和设置热点。
以下是可通过应用程序窗口左侧的按钮访问的绘图命令列表。某些命令可以通过在位图窗口内按 A 键来中止,从而允许用户在适用的情况下选择不同的引导点。
该命令清除位图图像中的所有位。网格方块将设置为背景颜色。在位图窗口内按 C 具有相同的效果。
该命令设置位图图像中的所有位。网格方块将设置为前景色。在位图窗口内按 S 具有相同的效果。
该命令反转位图图像中的所有位。网格方块将适当反转。在位图窗口内按 I 具有相同的效果。
此命令用于通过以突出显示颜色拖出矩形形状来标记网格区域。一旦区域被标记,就可以通过一系列命令对其进行操作(参见向上、向下、向左、向右、旋转、翻转、剪切等)。在该区域中只能出现一个标记区域。任何时候。如果您尝试标记另一个区域,旧标记将会消失。通过按下 Shift-MouseButton1 并在网格窗口中拖出一个矩形,可以实现相同的效果。按Shift-MouseButton2将标记整个网格区域。
该命令将使标记区域消失。按Shift-MouseButton3也可以达到相同的效果。
此命令用于将网格区域从一个位置复制到另一个位置。如果没有显示标记的网格区域,复制的行为就像上面描述的标记。一旦有以突出显示颜色显示的标记网格区域,此命令就有两种替代行为。如果在标记区域内单击鼠标按钮,您将能够将代表标记区域的矩形拖动到所需位置。释放鼠标按钮后,该区域将被复制。如果您在标记区域之外单击,复制将假定您希望标记位图图像的不同区域,因此其行为将再次类似于标记。
该命令用于将网格区域从一个位置移动到另一个位置。其行为类似于复制命令的行为,只不过标记区域将被移动而不是复制。
此命令将相对于水平轴翻转位图图像。如果网格的标记区域突出显示,则它将仅在标记区域内运行。在位图窗口内按 H 具有相同的效果。
此命令将位图图像向上移动一个像素。如果网格的标记区域突出显示,则它将仅在标记区域内运行。在位图窗口内按向上箭头具有相同的效果。
此命令将相对于垂直轴翻转位图图像。如果网格的标记区域突出显示,则它将仅在标记区域内运行。在位图窗口内按 V 具有相同的效果。
此命令将位图图像向左移动一个像素。如果网格的标记区域突出显示,则它将仅在标记区域内运行。在位图窗口内按向左箭头具有相同的效果。
此命令将折叠位图图像,使对角变得相邻。这在创建用于平铺的位图图像时非常有用。在位图窗口内按 F 具有相同的效果。
此命令将位图图像向右移动一个像素。如果网格的标记区域突出显示,则它将仅在标记区域内运行。在位图窗口内按向右箭头具有相同的效果。
此命令将位图图像向左旋转 90 度(逆时针)。如果突出显示网格的标记区域,则它将仅在标记区域内操作。在位图窗口内按 L 具有相同的效果。
此命令将位图图像向下移动一个像素。如果网格的标记区域突出显示,则它将仅在标记区域内运行。在位图窗口内按向下箭头具有相同的效果。
此命令将位图图像向右旋转 90 度(顺时针)。如果网格的标记区域突出显示,则它将仅在标记区域内运行。在位图窗口内按 R 具有相同的效果。
如果按下鼠标按钮,此命令将更改鼠标指针下方的网格方块。如果连续拖动鼠标按钮,线条可能会不连续,具体取决于系统的速度和鼠标移动事件的频率。
如果按下鼠标按钮,此命令将更改鼠标指针下方的网格方块。如果连续拖动鼠标按钮,将确保线条是连续的。如果您的系统速度很慢或位图接收到的鼠标移动事件非常少,则它的行为可能会很奇怪。
此命令将更改两个方块之间的直线上的网格方块。一旦您在网格窗口中按下鼠标按钮,位图将突出显示从最初按下鼠标按钮的正方形到鼠标指针所在的正方形的线。释放鼠标按钮将使更改生效,并且突出显示的行将消失。
此命令将更改两个正方形之间的矩形中的网格正方形。一旦您在网格窗口中按下鼠标按钮,位图就会突出显示从最初按下鼠标按钮的正方形到鼠标指针所在的正方形的矩形。释放鼠标按钮将使更改生效,并且突出显示的矩形将消失。
此命令与矩形相同,只不过最后矩形将被填充而不是轮廓。
此命令将更改两个方块之间的圆内的网格方块。一旦您在网格窗口中按下鼠标按钮,位图就会突出显示从最初按下鼠标按钮的正方形到鼠标指针所在的正方形的圆圈。释放鼠标按钮将使更改生效,并且突出显示的圆圈将消失。
此命令与圆相同,只不过最后圆将被填充而不是轮廓。
当您单击所需的方块时,此命令将填充鼠标指针下方的连接区域。对角相邻的正方形不被认为是相连的。
如果该位图图像用于定义光标,则该命令指定网格中的一个方块作为热点。在所需的正方形中按鼠标按钮将显示菱形。
此命令从位图图像中删除任何指定的热点。
该命令将撤消上次执行的命令。它的深度为一,即在撤消之后按撤消将撤消自身。
通过按“文件”按钮并选择适当的菜单项,或者同时按 Ctrl 键和其他键,可以访问“文件”菜单命令。这些命令处理文件和全局位图参数,例如大小、基本名称、文件名等。
该命令将清除编辑区域并提示输入要编辑的新文件的名称。它不会加载到新文件中。
该命令用于将新的位图文件加载到位图编辑器中。如果当前图像尚未保存,将询问用户是否保存或忽略更改。编辑器一次只能编辑一个文件。如果您需要交互式编辑,请运行多个编辑器并使用剪切和粘贴机制,如下所述。
该命令用于将位图文件插入到当前正在编辑的图像中。提示输入文件名后,在网格窗口内单击并将轮廓矩形拖动到要插入新文件的位置。
该命令将保存位图图像。除非指定为
此命令将在提示输入新文件名后保存位图图像。如果您想更改文件名,则应使用它。
此命令用于将编辑区域的大小调整为新的像素数。尺寸应以 WIDTHxHEIGHT 格式输入。除非新尺寸小于当前图像尺寸,否则正在编辑的图像中的信息不会丢失。该编辑器不适用于编辑大文件。
该命令用于将编辑区域重新缩放到新的宽度和高度。尺寸应以 WIDTHxHEIGHT 格式输入。它不会进行抗锯齿处理,如果您重新缩放到较小的尺寸,信息将会丢失。请随意添加您自己的算法以更好地重新缩放。
该命令用于更改文件名,而不更改基本名称或保存文件。如果为文件名指定 - ,输出将通过管道传输到 stdout。
如果需要与指定文件名不同的文件名,则此命令用于更改基本名称。
该命令将终止位图应用程序。如果文件未保存,将提示用户是否保存图像。该命令优于终止进程。
可以通过按“编辑”按钮并选择适当的菜单条目,或同时按 Meta 键和另一个键来访问“编辑”菜单命令。这些命令处理编辑工具,例如网格、轴、缩放、剪切和粘贴等。
此命令将在单独的窗口中显示正在编辑的图像及其实际大小的反面。可以将窗口移开以继续编辑。在图像窗口中按鼠标左键将使其从屏幕上消失。
该命令控制编辑区域中的网格。如果网格间距低于 gridTolerance 资源指定的值(默认为 8),网格将自动关闭。可以通过显式激活此命令来强制执行。
该命令控制绘制网格线的点画。可以通过激活此命令来打开或关闭由破折号资源指定的点画。
该命令控制正在编辑的图像主轴的突出显示。实际线条不是图像的一部分。提供它们是为了帮助用户构建对称图像,或者突出显示主轴以帮助您进行编辑。
该命令控制位图图像突出显示区域的点画。点画资源指定的点画可以通过激活此命令来打开或关闭。
该命令控制比例模式。如果启用比例模式,则无论位图窗口的比例如何,所有图像方块的宽度和高度都将强制相等。
该命令控制缩放模式。如果已经显示图像的标记区域,位图将自动放大到该区域。否则,用户必须在缩放模式下突出显示要编辑的区域,位图将自动切换到该区域。在缩放模式下可以使用所有编辑命令和其他实用程序。当您缩小时,撤消命令将撤消整个缩放会话。
该命令将突出显示的图像区域的内容剪切到内部剪切和粘贴缓冲区中。
该命令将突出显示的图像区域的内容复制到内部剪切和粘贴缓冲区中。
此命令将检查是否有任何其他位图应用程序具有突出显示的图像区域,或者内部剪切和粘贴缓冲区中是否有某些内容并将其复制到图像。要放置复制的图像,请在编辑窗口中单击并将轮廓图像拖到要放置的位置,然后释放按钮。
位图支持两种剪切和粘贴机制;内部剪切和粘贴以及全局 X 选择剪切和粘贴。执行复制和移动绘图命令以及从编辑菜单中执行剪切和复制命令时,会使用内部剪切和粘贴。只要屏幕上任何位置显示位图图像的突出显示区域,就会使用全局 X 选择剪切和粘贴。要从另一个位图编辑器复制图像的一部分,只需使用“标记”命令或按 Shift 键并用鼠标左键拖动该区域来突出显示所需区域。当所选区域突出显示时,使用主要选择的任何其他应用程序(例如 xterm 等)将丢弃其选择值并取消突出显示相应的信息。现在,使用“编辑”菜单的“粘贴”命令或控制鼠标按钮将图像的选定部分复制到另一个(或同一)位图应用程序中。如果您尝试在没有可见的突出显示图像区域的情况下执行此操作,则位图将回退到内部剪切和粘贴缓冲区并粘贴当前存储的任何内容。
下面是位图应用程序的小部件结构。缩进表示层次结构。首先给出小部件类名称,然后是小部件实例名称。除位图小部件外的所有小部件均来自标准 Athena 小部件集。
Bitmap bitmap
TransientShell image
Box box
Label normalImage
Label invertedImage
TransientShell input
Dialog dialog
Command okay
Command cancel
TransientShell error
Dialog dialog
Command abort
Command retry
TransientShell qsave
Dialog dialog
Command yes
Command no
Command cancel
Paned parent
Form formy
MenuButton fileButton
SimpleMenu fileMenu
SmeBSB new
SmeBSB load
SmeBSB insert
SmeBSB save
SmeBSB saveAs
SmeBSB resize
SmeBSB rescale
SmeBSB filename
SmeBSB basename
SmeLine line
SmeBSB quit
MenuButton editButton
SimpleMenu editMenu
SmeBSB image
SmeBSB grid
SmeBSB dashed
SmeBSB axes
SmeBSB stippled
SmeBSB proportional
SmeBSB zoom
SmeLine line
SmeBSB cut
SmeBSB copy
SmeBSB paste
Label status
Pane pane
Bitmap bitmap
Form form
Command clear
Command set
Command invert
Toggle mark
Command unmark
Toggle copy
Toggle move
Command flipHoriz
Command up
Command flipVert
Command left
Command fold
Command right
Command rotateLeft
Command down
Command rotateRight
Toggle point
Toggle curve
Toggle line
Toggle rectangle
Toggle filledRectangle
Toggle circle
Toggle filledCircle
Toggle floodFill
Toggle setHotSpot
Command clearHotSpot
Command undo如果您希望位图以颜色显示,请在使用 xrdb 读取的文件的 #ifdef COLOR 部分中包含以下内容:
*定制:-颜色
这将导致位图拾取应用程序默认颜色自定义文件中的颜色:
/etc/X11/app-defaults/位图颜色
位图小部件是一个用于编辑光栅图像的独立小部件。它不是为编辑大图像而设计的,尽管它也可以用于该目的。它可以自由地与其他应用程序合并并用作标准编辑工具。以下是位图小部件提供的资源。
| Bitmap Widget | |
| Header file | Bitmap.h |
| Class | bitmapWidgetClass |
| Class Name | Bitmap |
| Superclass | Bitmap |
所有 Simple Widget 资源加上 . 。 。
| Name | Class | Type | Default Value | |
| foreground | Foreground | Pixel | XtDefaultForeground | |
| highlight | Highlight | Pixel | XtDefaultForeground | |
| framing | Framing | Pixel | XtDefaultForeground | |
| gridTolerance | GridTolerance | Dimension | 8 | |
| size | Size | String | 32x32 | |
| dashed | Dashed | Boolean | True | |
| grid | Grid | Boolean | True | |
| stippled | Stippled | Boolean | True | |
| proportional | Proportional | Boolean | True | |
| axes | Axes | Boolean | False | |
| squareWidth | SquareWidth | Dimension | 16 | |
| squareHeight | SquareHeight | Dimension | 16 | |
| margin | Margin | Dimension | 16 | |
| xHot | XHot | Position | NotSet (-1) | |
| yHot | YHot | Position | NotSet (-1) | |
| button1Function | Button1Function | DrawingFunction | Set | |
| button2Function | Button2Function | DrawingFunction | Invert | |
| button3Function | Button3Function | DrawingFunction | Clear | |
| button4Function | Button4Function | DrawingFunction | Invert | |
| button5Function | Button5Function | DrawingFunction | Invert | |
| filename | Filename | String | None ("") | |
| basename | Basename | String | None ("") |
Davor Matic,麻省理工学院 X 联盟