5.11.1. Коллекции изображений#
Changed in version 1.23.0-ms15: Добавлена возможность использования SVG-коллекций.
5.11.1.1. Общая информация#
Сервер предоставляет API для работы с коллекциями изображений.
Получение коллекций изображений осуществляется через EngineEndpoint.
Виды коллекций изображений:
Коллекции векторных изображений (формируются на основании
.svg
файлов).Коллекции растровых изображений (формируются на основании
.png
файлов).
Способы храненения коллекций изображений:
В локальных файлах сервера. Путь к коллекциям изображений:
${G3_HOME}/server/resources/imagecollection/
.- В таблице
BTK_COMPONENT
внутри БД. Warning
БД поддерживает только растровые коллекции изображений
- В таблице
Note
Как реализовано получение коллекций из прикладного проекта:
Из прикладного проекта отправляется запрос на сервер для получения коллекции по указаному имени (например:
toolbarprimary
).- Сервер обрабатывает запрос в зависимости от того, была ли данная коллекция запрошена ранее
- 2.1. Если коллекция запрашивается впервые:
Сервер извлекает изображения из указанной коллекции (из локальной папки, если коллекция хранится в локальных файлах сервера, или из таблицы
BTK_COMPONENT
, если коллекция хранится в БД).Из этих изображений сервер формирует единый файл — спрайт изображений, который преобразуется в массив битов.
Спрайт изображений (преобразованный в массив битов) сохраняется в кэше коллекций под именем запрашиваемой коллекции. Это необходимо, чтобы для каждого запроса для получения коллекций не формировать спрайт изображений заново.
Спрайт изображений отправляется на прикладной проект.
- 2.2. Если коллекция уже запрашивалась ранее:
Сервер получает спрайт изображений для запрашиваемой коллекции из кэша коллекций
Спрайт изображений отправляется на прикладной проект.
See also
Метаданные Postgres. Свойство imageCollectionName в ImageCollection
Метаданные Postgres. Свойство selection.imageIndexAttr в TabItems
Метаданные Postgres. Свойство imageIndexAttr в TabFrameItems
Метаданные Postgres. Свойство imageIndex в ButtonsEditButton
Справочник GTK Core Api. Свойство imageIndex в AnnotatedMetaOper
Справочник GTK Core Api. Свойство imageCollection в CoreOper
5.11.1.2. Правила#
Изображения в коллекции изображений необходимо называть по соответствующим им порядковому номеру. Например:
0.png
,1.png
,2.png
.Нумерация изображений в коллекции изображений начинается с
0
.Изображения внутри одной коллекции изображений должны иметь одинаковые высоту и ширину.
Если для одной коллекции изображений имеются файлы с разным размером изображений, то необходимо разделить коллекцию на отдельные коллекции изображений с указанием соответствующего размера изображений. Пример:
btk_license16
иbtk_license24
,btk_scheduler16
иbtk_scheduler24
.Изображения должны быть квадратными. Например,
16x16
пикселей.Поддерживаемые размеры изображений
16px
и24px
.Изображения внутри одной коллекции изображений должны иметь одинаковое расширение. Например: только
.svg
файлы.- Если в коллекции имеются файлы с разными расширениями, то будет выбрано только одно расширение в соответствии с установленным приоритетом. Файлы с другими расширениями не будут добавлены в спрайт.
Attention
Приоритет расширений файлов (от наиболее приоритетных к менее приоритетным):
.svg
.png
После добавления/удаления изображения из коллекции, которая уже запрашивались ранее в рамках работающего сервера, необходимо перезапустить сервер, чтобы применились изменения
5.11.1.2.1. Коллекции векторных изображений#
Указание свойств высоты (
height
) и ширины (width
) в аттрибутах изображения для.svg
файла является обязательным, иначе в дальнейшем изображение не будет использоваться.
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8 4.95117C6.99219 4.95117 6.37109 6.04102 6.37109 7.8457V8.15625C6.37109 9.9668 6.99805 11.0508 8 11.0508C9.00195 11.0508 9.62305 9.96094 9.62305 8.15625V7.8457C9.62305 6.04688 9.00195 4.95117 8 4.95117Z" fill="black"/>
<path d="M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM7.98828 12.1582C9.8457 12.1582 10.9473 10.5762 10.9473 8.16797V7.83984C10.9473 5.41406 9.86914 3.84375 8.01172 3.84375C6.14844 3.84375 5.04688 5.43164 5.04688 7.83984V8.16797C5.04688 10.5879 6.13672 12.1582 7.98828 12.1582Z" fill="black"/>
</svg>
5.11.1.3. Рекомендации#
Рекомендуется называть коллекцию изображений в зависимости от её тематики (например, коллекция
flags
содержит флаги стран) или от места её использования (например,toolbarprimary
иtoolbarsecondary
— это коллекции, используемые в панели инструментов).