bmtoa - справочное руководство, опции, примеры команд


ИМЯ

bmtoa bitmap, bmtoa, atobm — редактор и конвертер растровых изображений для X Window System

СИНТАКСИС

bitmap [ -options . . . ] [ filename ] [ basename ]

bmtoa [ -chars . . . ] [ filename ]

atobm [ -chars cc ] [ -name variable ] [ -xhot number ] [ -yhot number ] [ filename ]

ОПИСАНИЕ

Программа bitmap — это элементарный инструмент для создания или редактирования прямоугольных изображений, состоящих из единиц и нулей. Растровые изображения используются в X для определения областей отсечения, форм курсора, форм значков, а также шаблонов мозаики и точек.

Фильтры bmtoa и atobm преобразуют файлы bitmap (ФОРМАТ ФАЙЛА) в строки ASCII и обратно. Чаще всего они используются для быстрой распечатки растровых изображений и создания версий для включения в текст.

ОПЦИИ КОМАНДНОЙ СТРОКИ

Bitmap поддерживает стандартные аргументы командной строки X Toolkit (см. X(7)). Также поддерживаются следующие дополнительные аргументы.

-size WIDTHxHEIGHT

Задает размер сетки в квадратах.

-sw dimension

Задает ширину квадратов в пикселях.

-sh dimension

Задает высоту квадратов в пикселях.

-gt dimension

Допуск сетки. Если размеры квадрата упадут ниже указанного значения, сетка будет автоматически отключена.

-grid, +grid

Включает или выключает линии сетки.

-axes, +axes

Включает или выключает главные оси.

-dashed, +dashed

Включает или выключает пунктир для линий рамки и сетки.

-stippled, +stippled

Включает или выключает штриховку выделенных квадратов.

-proportional, +proportional

Включает или выключает пропорциональный режим. Если пропорциональный режим включен, ширина квадрата равна высоте квадрата. Если пропорциональный режим выключен, растровое изображение будет использовать меньший размер квадрата, если изначально они были разными.

-dashes filename

Указывает растровое изображение, которое будет использоваться в качестве точки для штриховки.

-stipple filename

Указывает растровое изображение, которое будет использоваться в качестве точки для выделения.

-hl color

Указывает цвет, используемый для выделения.

-fr color

Указывает цвет, используемый для линий рамки и сетки.

filename

Задает растровое изображение, которое будет изначально загружено в программу. Если файл не существует, растровое изображение будет считать, что это новый файл.

basename

Задает базовое имя, которое будет использоваться в выходном файле кода C. Если оно отличается от базового имени в рабочем файле, растровое изображение изменит его при сохранении файла.

Bmtoa принимает следующий вариант:

-chars cc

Этот параметр указывает пару символов, которые будут использоваться в строковой версии растрового изображения. Первый символ используется для 0 битов, а второй символ используется для 1 битов. По умолчанию используются тире (-) для 0 и знаки диез (#) для 1.

Atobm поддерживает следующие параметры:

-chars cc

Этот параметр указывает пару символов, которые следует использовать при преобразовании строковых растровых изображений в массивы чисел. Первый символ представляет бит 0, а второй символ представляет бит 1. По умолчанию используются тире (-) для 0 и знаки диез (#) для 1.

-name variable

Этот параметр указывает имя переменной, которое будет использоваться при записи файла растрового изображения. По умолчанию используется базовое имя аргумента командной строки filename или оставьте его пустым, если читается стандартный ввод.

-xhot number

Этот параметр определяет координату X точки доступа. Допускаются только положительные значения. По умолчанию информация о точках доступа не включается.

-yhot number

Этот параметр определяет координату 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 в окне растрового изображения, что позволяет пользователю выбирать различные направляющие точки, где это применимо.

Clear

Эта команда очищает все биты в растровом изображении. Квадраты сетки будут установлены в цвет фона. Нажатие C внутри растрового окна имеет тот же эффект.

Set

Эта команда устанавливает все биты в растровом изображении. Квадраты сетки будут настроены на цвет переднего плана. Нажатие S внутри растрового окна имеет тот же эффект.

Invert

Эта команда инвертирует все биты в растровом изображении. Квадраты сетки будут инвертированы соответствующим образом. Нажатие I внутри окна растрового изображения имеет тот же эффект.

Mark

Эта команда используется для выделения области сетки путем перетаскивания прямоугольной формы цветом выделения. После того, как область отмечена, ею можно управлять с помощью ряда команд (см. Вверх, Вниз, Влево, Вправо, Повернуть, Отразить, Вырезать и т. д.). Только одна отмеченная область может присутствовать в одном месте. в любой момент. Если вы попытаетесь отметить другую область, старая метка исчезнет. Того же эффекта можно добиться, нажав Shift-MouseButton1 и перетащив прямоугольник в окне сетки. Нажатие Shift-MouseButton2 отметит всю область сетки.

Unmark

Эта команда приведет к исчезновению отмеченной области. Того же эффекта можно добиться, нажав Shift-MouseButton3.

Copy

Эта команда используется для копирования области сетки из одного места в другое. Если выделенная область сетки не отображается, функция Копировать ведет себя точно так же, как Отметить, описанной выше. Если отмеченная область сетки отображается цветом выделения, у этой команды есть два альтернативных варианта поведения. Если вы щелкнете кнопкой мыши внутри отмеченной области, вы сможете перетащить прямоугольник, представляющий отмеченную область, в нужное место. После того, как вы отпустите кнопку мыши, область будет скопирована. Если вы щелкнете за пределами отмеченной области, Копировать будет считать, что вы хотите отметить другую область растрового изображения, поэтому снова будет работать как Отметить.

Move

Эта команда используется для перемещения области сетки из одного места в другое. Его поведение напоминает поведение команды Копировать, за исключением того, что отмеченная область будет перемещена, а не скопирована.

Flip Horizontally

Эта команда перевернет растровое изображение относительно горизонтальной оси. Если выделена отмеченная область сетки, она будет работать только внутри отмеченной области. Нажатие H внутри растрового окна имеет тот же эффект.

Up

Эта команда перемещает растровое изображение на один пиксель вверх. Если выделена отмеченная область сетки, она будет работать только внутри отмеченной области. Нажатие стрелки вверх внутри окна растрового изображения имеет тот же эффект.

Flip Vertically

Эта команда перевернет растровое изображение относительно вертикальной оси. Если выделена отмеченная область сетки, она будет работать только внутри отмеченной области. Нажатие V внутри растрового окна имеет тот же эффект.

Left

Эта команда перемещает растровое изображение на один пиксель влево. Если выделена отмеченная область сетки, она будет работать только внутри отмеченной области. Нажатие со стрелкой влево внутри окна растрового изображения имеет тот же эффект.

Fold

Эта команда свернет растровое изображение так, что противоположные углы станут смежными. Это полезно при создании растровых изображений для листов. Нажатие F внутри растрового окна имеет тот же эффект.

Right

Эта команда перемещает растровое изображение на один пиксель вправо. Если выделена отмеченная область сетки, она будет работать только внутри отмеченной области. Нажатие правой стрелки внутри окна растрового изображения имеет тот же эффект.

Rotate Left

Эта команда поворачивает растровое изображение на 90 градусов влево (против часовой стрелки). Если выделена отмеченная область сетки, она будет работать только внутри отмеченной области. Нажатие L внутри растрового окна имеет тот же эффект.

Down

Эта команда перемещает растровое изображение на один пиксель вниз. Если выделена отмеченная область сетки, она будет работать только внутри отмеченной области. Нажатие стрелки вниз внутри окна растрового изображения имеет тот же эффект.

Rotate Right

Эта команда поворачивает растровое изображение на 90 градусов вправо (по часовой стрелке). Если выделена отмеченная область сетки, она будет работать только внутри отмеченной области. Нажатие R внутри растрового окна имеет тот же эффект.

Point

Эта команда изменит квадраты сетки под указателем мыши, если кнопка мыши нажата. Если вы непрерывно перетаскиваете кнопку мыши, линия может быть не непрерывной, в зависимости от скорости вашей системы и частоты событий движения мыши.

Curve

Эта команда изменит квадраты сетки под указателем мыши, если кнопка мыши нажата. Если вы будете непрерывно перетаскивать кнопку мыши, линия будет непрерывной. Если ваша система работает медленно или bitmap получает очень мало событий движения мыши, она может вести себя довольно странно.

Line

Эта команда изменит квадраты пояса в линии между двумя квадратами. Как только вы нажмете кнопку мыши в окне сетки, растровое изображение выделит линию от квадрата, где кнопка мыши была первоначально нажата, до квадрата, где находится указатель мыши. Отпустив кнопку мыши, изменения вступят в силу, а выделенная строка исчезнет.

Rectangle

Эта команда изменит квадраты сетки в прямоугольнике между двумя квадратами. Как только вы нажмете кнопку мыши в окне сетки, растровое изображение выделит прямоугольник от квадрата, где кнопка мыши была первоначально нажата, до квадрата, где находится указатель мыши. Отпустив кнопку мыши, изменения вступят в силу, а выделенный прямоугольник исчезнет.

Filled Rectangle

Эта команда идентична Rectangle, за исключением того, что в конце прямоугольник будет заполнен, а не обведен контуром.

Circle

Эта команда изменит квадраты пояса на круг между двумя квадратами. Как только вы нажмете кнопку мыши в окне сетки, растровое изображение выделит круг от квадрата, где кнопка мыши была первоначально нажата, до квадрата, где находится указатель мыши. Отпустив кнопку мыши, изменения вступят в силу, и выделенный кружок исчезнет.

Filled Circle

Эта команда идентична команде Круг, за исключением того, что в конце круг будет заполнен, а не обведен контуром.

Flood Fill

Эта команда заполнит связанную область под указателем мыши, когда вы щелкнете по нужному квадрату. Соседние по диагонали квадраты не считаются соединенными.

Set Hot Spot

Эта команда назначает один квадрат в сетке активной точкой, если это растровое изображение должно использоваться для определения курсора. Нажатие кнопки мыши в нужном квадрате приведет к отображению ромбовидной формы.

Clear Hot Spot

Эта команда удаляет любую обозначенную горячую точку из растрового изображения.

Undo

Эта команда отменяет последнюю выполненную команду. Он имеет глубину один, то есть нажатие Undo после Undo отменит саму себя.

ФАЙЛ МЕНЮ

Доступ к командам меню «Файл» можно получить, нажав кнопку «Файл» и выбрав соответствующий пункт меню, или нажав клавишу Ctrl с другой клавишей. Эти команды работают с файлами и глобальными параметрами растрового изображения, такими как размер, базовое имя, имя файла и т. д.

New

Эта команда очистит область редактирования и запросит имя нового редактируемого файла. Он не будет загружаться в новый файл.

Load

Эта команда используется для загрузки нового файла растрового изображения в редактор растровых изображений. Если текущее изображение не было сохранено, пользователю будет предложено сохранить или проигнорировать изменения. Редактор может одновременно редактировать только один файл. Если вам нужно интерактивное редактирование, запустите несколько редакторов и используйте механизм вырезания и вставки, как описано ниже.

Insert

Эта команда используется для вставки файла растрового изображения в редактируемое изображение. После запроса имени файла щелкните внутри окна сетки и перетащите выделенный прямоугольник в то место, куда вы хотите вставить новый файл.

Save

Эта команда сохранит растровое изображение. Он не будет запрашивать имя файла, если только оно не указано как . Если вы оставите имя файла без обозначения или -, вывод будет передан на стандартный вывод.

Save As

Эта команда сохранит растровое изображение после запроса нового имени файла. Его следует использовать, если вы хотите изменить имя файла.

Resize

Эта команда используется для изменения размера области редактирования до нового количества пикселей. Размер следует вводить в формате WIDTHxHEIGHT. Информация в редактируемом изображении не будет потеряна, если только новый размер не будет меньше текущего размера изображения. Редактор не предназначен для редактирования огромных файлов.

Rescale

Эта команда используется для изменения масштаба области редактирования до новой ширины и высоты. Размер следует вводить в формате WIDTHxHEIGHT. Он не будет выполнять сглаживание, и информация будет потеряна, если вы измените масштаб до меньших размеров. Не стесняйтесь добавлять свои собственные алгоритмы для лучшего масштабирования.

Filename

Эта команда используется для изменения имени файла без изменения базового имени и сохранения файла. Если вы укажете - для имени файла, вывод будет передан на стандартный вывод.

Basename

Эта команда используется для изменения базового имени, если требуется отличное от указанного имя файла.

Quit

Эта команда завершит приложение растрового изображения. Если файл не был сохранен, пользователю будет предложено сохранить изображение или нет. Эта команда предпочтительнее, чем уничтожение процесса.

МЕНЮ РЕДАКТИРОВАНИЯ

Доступ к командам меню «Правка» можно получить, нажав кнопку «Правка» и выбрав соответствующий пункт меню, или нажав клавишу «Мета» с другой клавишей. Эти команды имеют дело с такими средствами редактирования, как сетка, оси, масштабирование, вырезание и вставка и т. д.

Image

Эта команда отобразит редактируемое изображение и его инверсию в реальном размере в отдельном окне. Окно можно убрать, чтобы продолжить редактирование. Нажатие левой кнопки мыши в окне изображения приведет к его исчезновению с экрана.

Grid

Эта команда управляет сеткой в области редактирования. Если шаг сетки ниже значения, заданного ресурсом gridTolerance (8 по умолчанию), сетка будет автоматически отключена. Его можно принудительно активировать, явно активировав эту команду.

Dashed

Эта команда управляет пунктиром для рисования линий сетки. Пунктир, указанный ресурсом тире, можно включить или выключить, активировав эту команду.

Axes

Эта команда управляет подсветкой главных осей редактируемого изображения. Фактические линии не являются частью изображения. Они предоставляются, чтобы помочь пользователю при построении симметричных изображений или всякий раз, когда выделение основных осей помогает при редактировании.

Stippled

Эта команда управляет штриховкой выделенных областей растрового изображения. Пунктир, заданный ресурсом штриховки, можно включить или выключить, активировав эту команду.

Proportional

Эта команда управляет пропорциональным режимом. Если пропорциональный режим включен, ширина и высота всех квадратов изображения должны быть равными, независимо от пропорций растрового окна.

Zoom

Эта команда управляет режимом масштабирования. Если уже отображена отмеченная область изображения, растровое изображение автоматически увеличит ее. В противном случае пользователю придется выделить редактируемую область в режиме масштабирования, и растровое изображение автоматически переключится на нее. Все команды редактирования и другие утилиты можно использовать в режиме масштабирования. Когда вы уменьшаете масштаб, команда отмены отменяет весь сеанс масштабирования.

Cut

Эта команда вырезает содержимое выделенной области изображения во внутренний буфер вырезания и вставки.

Copy

Эта команда копирует содержимое выделенной области изображения во внутренний буфер вырезания и вставки.

Paste

Эта команда проверит, есть ли какие-либо другие растровые приложения с выделенной областью изображения, или есть ли что-то во внутреннем буфере вырезания и вставки, и скопирует это в изображение. Чтобы поместить скопированное изображение, щелкните в окне редактирования и перетащите контурное изображение в то место, где вы хотите поместить i, а затем отпустите кнопку.

ВЫРЕЗАТЬ И ВСТАВИТЬ

Bitmap поддерживает два механизма вырезания и вставки; внутреннее вырезание и вставка, а также глобальное вырезание и вставка по оси X. Внутреннее вырезание и вставка используется при выполнении команд копирования и перемещения чертежа, а также команд вырезания и копирования из меню редактирования. Вырезать и вставить глобальное выделение X используется всякий раз, когда в любом месте экрана отображается выделенная область растрового изображения. Чтобы скопировать часть изображения из другого растрового редактора, просто выделите нужную область с помощью команды «Отметить» или нажмите клавишу Shift и перетащите область левой кнопкой мыши. Когда выбранная область становится выделенной, любые другие приложения (такие как xterm и т. д.), которые используют первичный выбор, отбрасывают свои значения выбора и не выделяют соответствующую информацию. Теперь используйте команду «Вставить» в меню «Правка» или управляющую кнопку мыши, чтобы скопировать выделенную часть изображения в другое (или то же самое) растровое приложение. Если вы попытаетесь сделать это без видимой выделенной области изображения, растровое изображение вернется во внутренний буфер вырезания и вставки и вставит все, что там хранится в данный момент.

ВИДЖЕТЫ

Ниже представлена структура виджета приложения bitmap. Отступ указывает на иерархическую структуру. Сначала указывается имя класса виджета, а затем имя экземпляра виджета. Все виджеты, кроме виджета растрового изображения, взяты из стандартного набора виджетов 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

ЦВЕТА

Если вы хотите, чтобы растровое изображение отображалось в цвете, включите следующее в раздел #ifdef COLOR файла, который вы читаете с помощью xrdb:

*customization: -color

Это приведет к тому, что растровое изображение подберет цвета из файла настройки цвета приложения по умолчанию:

/etc/X11/app-defaults/Bitmap-color

РАстровый виджет

Виджет Bitmap — это отдельный виджет для редактирования растровых изображений. Он не предназначен для редактирования больших изображений, хотя может использоваться и для этой цели. Его можно свободно интегрировать с другими приложениями и использовать в качестве стандартного инструмента редактирования. Ниже приведены ресурсы, предоставляемые виджетом растрового изображения.

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 ("")

АВТОР

Давор Матич, Консорциум MIT X