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)). Также поддерживаются следующие дополнительные аргументы.
Задает размер сетки в квадратах.
Задает ширину квадратов в пикселях.
Задает высоту квадратов в пикселях.
Допуск сетки. Если размеры квадрата упадут ниже указанного значения, сетка будет автоматически отключена.
Включает или выключает линии сетки.
Включает или выключает главные оси.
Включает или выключает пунктир для линий рамки и сетки.
Включает или выключает штриховку выделенных квадратов.
Включает или выключает пропорциональный режим. Если пропорциональный режим включен, ширина квадрата равна высоте квадрата. Если пропорциональный режим выключен, растровое изображение будет использовать меньший размер квадрата, если изначально они были разными.
Указывает растровое изображение, которое будет использоваться в качестве точки для штриховки.
Указывает растровое изображение, которое будет использоваться в качестве точки для выделения.
Указывает цвет, используемый для выделения.
Указывает цвет, используемый для линий рамки и сетки.
Задает растровое изображение, которое будет изначально загружено в программу. Если файл не существует, растровое изображение будет считать, что это новый файл.
Задает базовое имя, которое будет использоваться в выходном файле кода C. Если оно отличается от базового имени в рабочем файле, растровое изображение изменит его при сохранении файла.
Bmtoa принимает следующий вариант:
Этот параметр указывает пару символов, которые будут использоваться в строковой версии растрового изображения. Первый символ используется для 0 битов, а второй символ используется для 1 битов. По умолчанию используются тире (-) для 0 и знаки диез (#) для 1.
Atobm поддерживает следующие параметры:
Этот параметр указывает пару символов, которые следует использовать при преобразовании строковых растровых изображений в массивы чисел. Первый символ представляет бит 0, а второй символ представляет бит 1. По умолчанию используются тире (-) для 0 и знаки диез (#) для 1.
Этот параметр указывает имя переменной, которое будет использоваться при записи файла растрового изображения. По умолчанию используется базовое имя аргумента командной строки filename или оставьте его пустым, если читается стандартный ввод.
Эта опция указывает координату 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 внутри растрового окна имеет тот же эффект.
Эта команда изменит квадраты сетки под указателем мыши, если кнопка мыши нажата. Если вы непрерывно перетаскиваете кнопку мыши, линия может быть не непрерывной, в зависимости от скорости вашей системы и частоты событий движения мыши.
Эта команда изменит квадраты сетки под указателем мыши, если кнопка мыши нажата. Если вы будете непрерывно перетаскивать кнопку мыши, линия будет непрерывной. Если ваша система работает медленно или bitmap получает очень мало событий движения мыши, она может вести себя довольно странно.
Эта команда изменит квадраты пояса в линии между двумя квадратами. Как только вы нажмете кнопку мыши в окне сетки, растровое изображение выделит линию от квадрата, где кнопка мыши была первоначально нажата, до квадрата, где находится указатель мыши. Отпустив кнопку мыши, изменения вступят в силу, а выделенная строка исчезнет.
Эта команда изменит квадраты сетки в прямоугольнике между двумя квадратами. Как только вы нажмете кнопку мыши в окне сетки, растровое изображение выделит прямоугольник от квадрата, где кнопка мыши была первоначально нажата, до квадрата, где находится указатель мыши. Отпустив кнопку мыши, изменения вступят в силу, а выделенный прямоугольник исчезнет.
Эта команда идентична Rectangle, за исключением того, что в конце прямоугольник будет заполнен, а не обведен контуром.
Эта команда изменит квадраты пояса на круг между двумя квадратами. Как только вы нажмете кнопку мыши в окне сетки, растровое изображение выделит круг от квадрата, где кнопка мыши была первоначально нажата, до квадрата, где находится указатель мыши. Отпустив кнопку мыши, изменения вступят в силу, и выделенный кружок исчезнет.
Эта команда идентична команде Круг, за исключением того, что в конце круг будет заполнен, а не обведен контуром.
Эта команда заполнит связанную область под указателем мыши, когда вы щелкнете по нужному квадрату. Соседние по диагонали квадраты не считаются соединенными.
Эта команда назначает один квадрат в сетке активной точкой, если это растровое изображение должно использоваться для определения курсора. Нажатие кнопки мыши в нужном квадрате приведет к отображению ромбовидной формы.
Эта команда удаляет любую обозначенную горячую точку из растрового изображения.
Эта команда отменяет последнюю выполненную команду. Он имеет глубину один, то есть нажатие Undo после Undo отменит себя.
Доступ к командам меню «Файл» можно получить, нажав кнопку «Файл» и выбрав соответствующий пункт меню, или нажав клавишу Ctrl с другой клавишей. Эти команды работают с файлами и глобальными параметрами растрового изображения, такими как размер, базовое имя, имя файла и т. д.
Эта команда очистит область редактирования и запросит имя нового редактируемого файла. Он не будет загружаться в новый файл.
Эта команда используется для загрузки нового файла растрового изображения в редактор растровых изображений. Если текущее изображение не было сохранено, пользователю будет предложено сохранить или проигнорировать изменения. Редактор может одновременно редактировать только один файл. Если вам нужно интерактивное редактирование, запустите несколько редакторов и используйте механизм вырезания и вставки, как описано ниже.
Эта команда используется для вставки файла растрового изображения в редактируемое изображение. После запроса имени файла щелкните внутри окна сетки и перетащите выделенный прямоугольник в то место, куда вы хотите вставить новый файл.
Эта команда сохранит растровое изображение. Он не будет запрашивать имя файла, если только оно не указано как
Эта команда сохранит растровое изображение после запроса нового имени файла. Его следует использовать, если вы хотите изменить имя файла.
Эта команда используется для изменения размера области редактирования до нового количества пикселей. Размер следует вводить в формате WIDTHxHEIGHT. Информация в редактируемом изображении не будет потеряна, если только новый размер не будет меньше текущего размера изображения. Редактор не предназначен для редактирования огромных файлов.
Эта команда используется для изменения масштаба области редактирования до новой ширины и высоты. Размер следует вводить в формате WIDTHxHEIGHT. Он не будет выполнять сглаживание, и информация будет потеряна, если вы измените масштаб до меньших размеров. Не стесняйтесь добавлять свои собственные алгоритмы для лучшего масштабирования.
Эта команда используется для изменения имени файла без изменения базового имени и сохранения файла. Если вы укажете - для имени файла, вывод будет передан на стандартный вывод.
Эта команда используется для изменения базового имени, если требуется отличное от указанного имя файла.
Эта команда завершит приложение растрового изображения. Если файл не был сохранен, пользователю будет предложено сохранить изображение или нет. Эта команда предпочтительнее, чем уничтожение процесса.
Доступ к командам меню «Правка» можно получить, нажав кнопку «Правка» и выбрав соответствующий пункт меню, или нажав клавишу «Мета» с другой клавишей. Эти команды имеют дело с такими средствами редактирования, как сетка, оси, масштабирование, вырезание и вставка и т. д.
Эта команда отобразит редактируемое изображение и его инверсию в реальном размере в отдельном окне. Окно можно убрать, чтобы продолжить редактирование. Нажатие левой кнопки мыши в окне изображения приведет к его исчезновению с экрана.
Эта команда управляет сеткой в области редактирования. Если шаг сетки ниже значения, заданного ресурсом gridTolerance (8 по умолчанию), сетка будет автоматически отключена. Его можно принудительно активировать, явно активировав эту команду.
Эта команда управляет пунктиром для рисования линий сетки. Пунктир, указанный ресурсом тире, можно включить или выключить, активировав эту команду.
Эта команда управляет подсветкой главных осей редактируемого изображения. Фактические линии не являются частью изображения. Они предоставляются, чтобы помочь пользователю при построении симметричных изображений или всякий раз, когда выделение основных осей помогает при редактировании.
Эта команда управляет штриховкой выделенных областей растрового изображения. Пунктир, заданный ресурсом штриховки, можно включить или выключить, активировав эту команду.
Эта команда управляет пропорциональным режимом. Если пропорциональный режим включен, ширина и высота всех квадратов изображения должны быть равными, независимо от пропорций растрового окна.
Эта команда управляет режимом масштабирования. Если уже отображена отмеченная область изображения, растровое изображение автоматически увеличит ее. В противном случае пользователю придется выделить редактируемую область в режиме масштабирования, и растровое изображение автоматически переключится на нее. Все команды редактирования и другие утилиты можно использовать в режиме масштабирования. Когда вы уменьшаете масштаб, команда отмены отменяет весь сеанс масштабирования.
Эта команда вырезает содержимое выделенной области изображения во внутренний буфер вырезания и вставки.
Эта команда копирует содержимое выделенной области изображения во внутренний буфер вырезания и вставки.
Эта команда проверит, есть ли какие-либо другие растровые приложения с выделенной областью изображения, или есть ли что-то во внутреннем буфере вырезания и вставки, и скопирует это в изображение. Чтобы поместить скопированное изображение, щелкните в окне редактирования и перетащите контурное изображение в то место, где вы хотите поместить 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:
* настройка: -цвет
Это приведет к тому, что растровое изображение подберет цвета из файла настройки цвета приложения по умолчанию:
/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 Consortium