<aid="bitmap-vector"name="bitmap-vector">Пиксельные иконки BeOS против векторных иконок Haiku</a></h2>
<p>Вопреки традициям BeOS, в Haiku используются векторные иконки. Специальный формат векторных иконок Haiku (Haiku Vector Icon Format) (HVIF) был оптимизирован для небольших размеров файла и быстрой отрисовки. Это объясняет, почему наши иконки чаще всего <i>значительно</i> меньше чем иконки пиксельного или широко распространенного SVG-формата. Кроме того, в отличие от пиксельных иконок BeOS, иконки в Haiku не ограничены 8-битной палитрой (256 цветов).<br/>
<p>Обратите внимание, что в BeOS используется 2 версии иконки: одна размером 16x16, а вторая 32x32, для четкого отображения в режиме списка (List) и в режиме Иконки (Icon View mode).</p>
<p>Подобный трюк не нужен для векторных иконок. За счет повышения объема файла на несколько сот байт, векторные иконки масштабируются гораздо лучше, чем пиксельные (Замечание: BeOS позволял отображать иконки только двух размеров - 16x16 и 32x32.)</p>
<p>Иконки сохранены в виде атрибута файла, к которому относятся. Правда это не значит, что каждый файл должен иметь такой атрибут, чтобы его иконка отобразилась в окне Tracker: файлы с данными наследуют свои иконки от своего типа файла. Чтобы глобально поменять иконку типа файла, вы можете воспользоваться панелью настроек <spanclass="app">Типы Файлов (FileTypes)</span>. А если хотите назначить особенную иконку определенному файлу, вам следует воспользоваться <spanclass="app">Дополнение Тип Файла (FileType add-on)</span> на этом файле. Смотрите <ahref="../filetypes.html">Типы файлов (Filetypes)</a> для дополнительной информации.</p>
<divclass="box-info">Будучи атрибутом, индивидуальная иконка для файла сможет сохраняться только в файловой системе, поддерживающей атрибуты. Так, если вы перемещаете файлы с вашего BFS-диска, упакуйте их в zip-архив, чтобы иконки или другие атрибуты не были потеряны.</div>
<p>Icon-O-Matic - это векторный редактор иконок для Haiku, который может сохранять ваши работы в формате HVIF, SVG или PNG. Иконка также может быть прикреплена как атрибут к существующему файлу или же экспортирована в виде ресурсного файла или файла исходного кода, используемых разработчиками. Оптимизация работы с HVIF отразилась на внутренней работе с ним.</p>
<p>В отличие от обычных векторных графических редакторов, вы не будете иметь дело с отдельными объектами, которые включают такие специфические свойства, как контуры, цвет штриха, его ширину, цвет заливки и др. Здесь вы будете составлять ваши объекты ("формы" - "shapes") из общих контуров и цветов ("стилей" - "styles") и устанавливать для них некоторые свойства. Многократное использование одних и тех же элементов - секрет эффективности HVIF. Хотя это и накладывает некоторые ограничения на разработку иконки, преимущества все же существуют.<br/>
Например, при повторном использовании контуров, несколько объектов могут быть модифицированны одним движением. Представьте себе объект и его тень. Модификация их общих контуров поменяет не только сам объект, но и его тень (которая при этом может быть слегка растянута или сжата).</p>
<p>Создание любого видимого объекта на канве требует наличия формы с контуром и стилем. Что удобно, меню <spanclass="menu">Форма (Shape)</span> позволит вам создать не только форму, но и контуры и стили для нее. Для каждого вида объектов (контуры, формы, трансформеры и стили) существует специальный пункт меню, расположенный выше списка элементов, позволяющий совершать различные действия. Каждый элемент имеет набор свойств, которые устанавливаются в панели <spanclass="menu">Свойства (Properties)</span> view.</p>
<p>Контур состоит из нескольких точек, соединенных между собой линиями и кривыми Безье. Для добавления или изменения точек убедитесь, что необходимый контур выбран в списке контуров.</p>
<p>Обычный клик на канве создаст первую точку. Во время добавления точки вы определяете, будет ли результирующая линия прямой или кривой: нажатие и отпускание кнопки мыши создаст прямую линию, удерживание нажатой кнопки мыши - кривую Безье. Разумеется, тип линии можно сменить позже.</p>
<p>Чтобы перейти от "A" к "B", вам необходимо изменить некоторые точки из угловых в точки кривых. Сделать это можно удерживая клавишу <spanclass="key">ALT</span> во время клика на точке и перемещении опорных вершин. Результатом чего будет: вторая вершина переместится вместе с первой. Если потребуется перемещать опорные вершины независимо, снова кликните и протяните по опорной точке линии Безье, удерживая зажатой клавишу <spanclass="key">ALT</span>.<br/>
И наоборот, для преобразования в угловую точку удерживайте нажатой клавишу <spanclass="key">ALT</span> и кликните на нужной точке.</p>
<p>Для перемещения точки просто кликните по ней и передвиньте. Для выделения более чем одной точки удерживайте клавишу <spanclass="key">SHIFT</span>, создавая прямоугольную область выделения. Отмеченные точки выделяются красной обводкой.<br/>
<tr><tdclass="onelinetop"><spanclass="menu">Выбрать все (Select all)</span></td><tdstyle="width:70px"><spanclass="key">ALT</span><spanclass="key">A</span></td><td>Выделяет все точки текущего контура.</td></tr>
<tr><td><spanclass="menu">Трансформация (Transform)</span></td><td><spanclass="key">T</span></td><td>Помещает все выбранные точки в окно трансформации, в котором вы можете перемещать, масштабировать и вращать их все вместе. Принцип действия подобен принципу действия форм, описанному ниже.</td></tr>
<tr><td><spanclass="menu">Разделить (Split)</span></td><td></td><td>Разделяет выделенную точку на две, одна находится поверх другой.</td></tr>
<tr><td><spanclass="menu">Перевернуть (Flip)</span></td><td></td><td>Вращает выбранные точки на 180°. Имеет эффект только для точек кривых Безье.</td></tr>
<p>Меню <spanclass="menu">Контуры (Path)</span> содержит несколько простых элементов, таких как <spanclass="menu">Добавить прямоугольник (Add Rectangle)</span> и <spanclass="menu">Добавить круг (Add Circle)</span>, <spanclass="menu">Дублировать (Duplicate)</span> и <spanclass="menu">Удалить (Remove)</span> путь. Приведем ниже еще несколько, для которых может понадобиться объяснение:</p>
<tr><td><spanclass="menu">Обратить (Reverse)</span></td><tdstyle="width:15px;"></td><td>Если контур не замкнут (смотрите Свойства Контуров ниже), клик на канве всегда присоединяет новую точку к последней добавленной. "Обратить" ("Reverse") изменит этот порядок, и новая точка будет присоединена к начальной точке.</td></tr>
<tr><td><spanclass="menu">Оптимизировать (Clean Up)</span></td><td></td><td>Наиболее полезна для импортированных изображений SVG. Эта функция удалит избыточные точки.</td></tr>
<tr><tdclass="onelinetop"><spanclass="menu">Вращать начало контура вправо (Rotate Indices Right)</span></td><td><spanclass="key">ALT</span><spanclass="key">R</span></td><td>Фактически, эта функция меняет точку начала контура. Ее действие заметнее всего на незамкнутых контурах со стилем и форме с трансформированным штрихом. Если в данный момент путь имеет следующий вид ⊂, эта функция будет менять начало контура в следующем порядке: ⊂ ∩ ⊃ ∪.</td></tr>
<tr><tdclass="onelinetop"><spanclass="menu">Вращать начало контура влево (Rotate Indices Left)</span></td><td><spanclass="key">ALT</span><spanclass="key">SHIFT</span><spanclass="key">R</span></td><td>Производит те же действия, но в обратном порядке.</td></tr>
<p><spanclass="menu">Свойства (Properties)</span> в верхней левой части окна позволяет настроить все доступные параметры выбранного в данный момент объекта. Контур имеет только 2 параметра: <spanclass="menu">Имя (Name)</span> и <spanclass="menu">Замкнут (Closed)</span> ли он или нет.</p>
<p>Форма группирует между собой один или несколько контуров со стилем. Практически, это объект, который вы видите на канве. Группировка производится флажками, находящимися перед контурами стилями в списке: просто выберите вашу форму и отметьте желаемый контур (или контуры) и стиль.</p>
<p>Форма определяет каким образом контур и стиль будут применены. Например, объект может быть закрашен или только оконтурен (соответствующие настройки производятся с использованием трансформаторов (Transformers) над формами, о них мы поговорим позже). Кроме того, форма может быть перемещена, повернута и масштабирована без затрагивания использованного контура. Таким образом, вы можете многократно использовать один контур и получать различные, но и связанные формы.</p>
<p>Когда форма выбрана в списке, на канве вокруг нее отображается прямоугольник. В зависимости от того, где именно вы его захватите, форма будет перемещена, масштабирована либо повернута вокруг точки, находящейся в центре прямоугольника, которая так же может быть перемещена. Удерживание нажатой клавиши <spanclass="key">SHIFT</span> заблокирует направление во время перемещения, ограничит шаг вращения 45° и сохранит соотношение сторон при масштабировании. Как и ранее, указатель мыши отображает текущий режим работы:</p>
<h4><aid="i-o-m-shape-menu"name="i-o-m-path-menu">Меню Форма (Shape)</a></h4>
<p>Помимо упомянутых ниже возможностей, меню <spanclass="menu">Форма (Shape)</span> позволяет <spanclass="menu">Добавить пустую (Add Empty), С Контуром/Стилем/Контуром и стилем (With Path/Style/Path&Style)</span>, а так же <spanclass="menu">Дублировать (Duplicate)</span> или <spanclass="menu">Удалить (Remove)</span> форму. Приведем оставшиеся:</p>
<tr><td><spanclass="menu">Сбросить изменения (Reset Transformation)</span></td><tdstyle="width:15px;"></td><td>Отменяет все перемещения, изменения масштаба и вращения, примененные к форме.</td></tr>
<tr><tdclass="onelinetop"><spanclass="menu">Применить изменения (Freeze Transformation)</span></td><td></td><td>Когда вы изменяете форму, контур, связанный с ней остается в прежнем месте. Возможно, этот контур используется где-либо еще, более чем в одной фигуре, возможно он просто нужен вам в таком начальном виде или вы использовали пункт меню <spanclass="menu">Свойства | Выровнять по сетке (Options | Snap to Grid)</span> для выравнивания точек по пиксельным границам.<br/>
Если это не так, "Применить изменения" ("Freeze Transformation") отнесет текущие изменения формы на связанный контур. Применение "Сбросить изменения" ("Reset Transformation") будет отменять все изменения к этому сотоянию.</td></tr>
<p>Заметили, что на 16px иконке BeVexed нет номеров? Это сделано с помощью свойства "Уровень детализации" ("Level of Detail") для формы с номерами.<br/>
УД позволяет контролировать видимость формы, в зависимости от ее размера. Таким образом, вы можете убрать детали, которые хорошо смотрятся на большой версии иконки, и портят вид маленькой версии.</p>
<p>Как это работает: УД 1.0 определен как иконка размером 64px. Чтобы полудить УД для других размеров, просто поделите этот размер на 64, т.е. 16px иконка имеет УД 16/64 = 0.25. Форма не будет видна, если значение ниже <spanclass="menu">Минимального УД (Min LOD)</span> и выше <spanclass="menu">Максимального УД (Max LOD)</span>.</p>
<p>Так, если вы установите для формы <spanclass="menu">Минимальный УД (Min LOD)</span> равный 0.0 и <spanclass="menu">Максимальный УД (Max LOD)</span> равный 0.5, то это значит, что форма размером меньшим либо <i>равным</i> 32px видны не будут. Если необходимо исключить размер 32px, выберите значение меньшее чем 0.5, скажем, 0.49.</p>
<p>УД используется не только для отображения форм, но и, например, для смены толщины штриха, если вам это нужно. Просто продублируйте форму, сделайте изменения, установите соотвествующие значения УД так, чтобы одновременно отображалась только одна форма. Здесь кроется возможная путаница, когда вы невольно перекрываете УД форм, и размышляете о том, почему при некоторых размерах обе формы остаются видимыми...<br/>
Например, если Форма 1 должна была быть видима при размере меньшем 48px и Форма 2 - при размере большем 48px (УД: 48/64 = 0.75):</p>
<p>Стилем может являться как просто цвет, так и градиент.<br/>
Помимо предопределенных цветов в <spanclass="menu">Палитре (Swatches)</span>, вы можете выбрать нужный, кликнув по необходимому оттенку в спектре. Обратите внимание на слайдер, находящийся ниже спектра, который устанавливает уровень альфа-канала (прозрачности).</p>
<p>Перетащите выбранный цвет в список стилей - будет создан новый стиль.</p>
<p>Если вы создаете градиент, установите его тип (<spanclass="menu">Линейный (Linear)</span>, <spanclass="menu">Радиальный (Radial)</span>, <spanclass="menu">Ромбовидный (Diamond)</span>, <spanclass="menu">Конусный (Cone)</span>), а после этого определите начальные и конечные цвета. Сделать это можно, перетащив нужный цвет в соответствующий индикатор цвета под градиентом.<br/>
Разумеется, вы можете перемещать эти индикаторы для изменения вида градиется как посчитаете нужным. Чтобы добавить больше цветов - добавьте индикатор, дважды кликнув по градиенту. Нажатие клавиши <spanclass="key">DEL</span> удалит выбранный индикатор.</p>
<p>Вы можете перемещать, масштабировать и вращать бокс представления градиента на канве по вашему усмотрению. Его действие подобно действию боксу представления формы.</p>
<p>Меню <spanclass="menu">Стиль (Style)</span> позволяет <spanclass="menu">Добавить (Add)</span>, <spanclass="menu">Дублировать (Duplicate)</span> или <spanclass="menu">Удалить (Remove)</span> стиль и <spanclass="menu">Сбросить изменения (Reset Transformation)</span>.</p>
<p>Трансформаторы (Transformers) могут изменять внешний вид форм. Однако, эффект от их применения несколько тоньше, чем превращение грузовика в боевого робота.</p>
<p>Кроме пункта <spanclass="menu">Имя (Name)</span> и текущей <spanclass="menu">Ширины (Width)</span> для трансформаторов, в меню <spanclass="menu">Свойства (Properties)</span> имеются следующие пункты (в зависимости от типа трансформатора могут слегка различаться):</p>
<tr><td><spanclass="menu">Конец линий (Caps)</span></td><tdstyle="width:15px;"></td><td><i>Только для штриха</i>. Определяет форму конца линий: <spanclass="menu">Встык (Butt)</span>, <spanclass="menu">Квадратный (Square)</span> or <spanclass="menu">Скругленный (Round)</span>.</td></tr>
<tr><td><spanclass="menu">Определить положение (Detect Orient.)</span></td><td></td><td><i>Только для обводки</i>. Определяет расположение обводки - внутри или снаружи контура.</td></tr>
<tr><td><spanclass="menu">Соединение (Joins)</span></td><td></td><td>Опрелеляет вид соединения линии и точки: <spanclass="menu">Клин (Miter)</span>, <spanclass="menu">Округлость (Round)</span> или <spanclass="menu">Скос (Bevel)</span>.</td></tr>
<tr><td><spanclass="menu">Допуск клина (Miter Limit)</span></td><td></td><td>Только когда вид <spanclass="menu">Соединения (Joins) </span> установлен как "Клин" ("Miter"), определяет вид соединения клина.</td></tr>
<p>Сверху окна расположено привычные вам пункты меню: <spanclass="menu">Файл (File)</span>, <spanclass="menu">Правка (Edit)</span>, <spanclass="menu">Параметры (Options)</span>. Их назначение говорит само за себя, поэтому рассмотрим лишь способ сохранения вашей работы.</p>
<p><spanclass="menu">Файл | Сохранить как... (File | Save As...)</span> сохранит файл в специальном формате Icon-O-Matic, который позволяет хранить такую информацию как имена контуров, форм и стилей. Сохранять иконку в таком формате очень удобно - таким образом вы создаете резервную копию своей работы Эти данные удаляются для экономии пространства, когда вы экспортируете иконку. А работать с объектами названными "<path>/<shape>/<style>" довольно утомительно.</p>
<li><p>Прочтите статью <ahref="https://www.haiku-os.org/development/icon-guidelines">Icon Guidelines</a>, чтобы узнать о таких важных характеристиках иконок Haiku, как перспектива, тени и <ahref="https://www.haiku-os.org/files/downloads/2007-03-20_haiku-color-palette.png">палитра цветов Haiku</a>.</p></li>
<li><p>Всегда старайтесь минимизировать использование контуров - они наиболее накладны в отношении объема данных. Многократно используйте одни и те же контуры - где это только возможно, а так же манипулируйте формами, а не трансформаторами. Мудрое применение градиентов так же поможет сохранить объем.</p></li>
<li><p>Где это возможно, включите режим привязки к сетке из меню <spanclass="menu">Опции (Options)</span>, когда редактируете контуры. Точки контуров, выровненные по 64x64 сетке требует меньше пространства. Для получения наиболее четкого изображения, установите точки по границам пикселей. Например, важно выровнять наиболее выраженные элементы по сетке 16x16.</p></li>
<li><p>Проверяйте по предварительному просмотру, выглядит ли ваша иконка хорошо в размере 16x16. Возможно, вам понадобиться использовать <ahref="#i-o-m-shape-lod">Уровень детализации (Level Of Detail)</a>, описанный в разделе, посвященном формам.</p></li>
<li><p>Есть простой способ создания букв, несмотря на то, что в Icon-O-Matic этого не предусмотрено. Просто введите текст в любом текстовом редакторе, например, в StyledEdit, выберите шрифт и стиль и просто перетащите (или скопируйте и вставьте) его в Icon-O-Matic. Это создаст соответствующие контуры и формы.</p></li>
<li><p>Когда вы назначаете более одного контура для формы, их пересекающиеся зоны взаимоисключат друг друга. Когда один контур перекрывает другой - он практически создает дыру в результирующей форме.</p></li>
<li><p>Вы можете увеличивать и уменьшать масштаб канвы, прокручивая колесо мыши. Парнорамирование осуществляется нажатием и протягиванием средней кнопкой мыши, либо левой с удерживаемой клавишей <spanclass="key">SPACE</span>.</p></li>
<p>The above is of course quite theoretical. The best way to learn using Icon-O-Matic is by experimenting. To get you started and once more show the basics, have a look at these short clips:</p>