Картинки <img> представляют собой объект, на место которого будет подставлено необходимое изображение при генерации перевода статьи. При этом можно указать не только картинку, которая будет просто подставлена в текст, но и ее полноразмерный вариант, отображаемый отдельно (во всплывающем окне при нажатии, при наведении на основную картинку, которая в этом случае считается превью для полной и т.п.). В общем случае картинка-превью не является уменьшенной версией полноразмерной – это именно самостоятельное изображение (например, в качестве превью может выступать изображение велосипеда, а в качестве полноразмерного изображения – фотография улицы с общественным транспортом, автомобилями и велосипедистами для иллюстрации понятия “транспортные средства”)
Следует учесть, что приложение обычно считает возможным изменять размер svg-картинок при необходимости (например, при изменении размера шрифта в статье), поэтому рекомендуемые размеры таких картинок (задаются атрибутами) рекомендуется согласовывать с размером окружающего текста. Частным случаем этой практики является использование svg-картинок для отображения отсутствующих в основном шрифте словаря символов, но ее следует избегать в пользу использования кастомных шрифтов с поддержкой требуемых символов.
Список поддерживаемых форматов картинок (в словарном ядре – EPictureFormatType):
- png
- jpg
- svg
- gif
Примеры изображений:
<img url="image.jpg" />
<img url="image.jpg" full_url="image_large.jpg"></img>
<img url="image.jpg" url_f="image_large.jpg"></img>
<img dictid="55FA" listidx="0" key="table" />
<img url="fermata.svg" show_width="10" show_height="15" />
Атрибуты изображений:
- url – содержит имя файла с основной картинкой (превью), которая должна быть показана в переводе;
- show_width – содержит ширину основной картинки (превью) в пикселах, которую нужно установить для картинки при отображении в переводе. Это не реальная ширина картинки, которая зашита внутри самого файла изображения, а именно рекомендуемая ширина фрейма отображения. В основном это используется для картинок в формате svg;
- show_height – содержит высоту основной картинки (превью) в пикселах, которую нужно установить для картинки при отображении в переводе. Это не реальная высота картинки, которая зашита внутри самого файла изображения, а именно рекомендуемая высота фрейма отображения. В основном это используется для картинок в формате svg;
- dictid – наличие данного атрибута означает, что основную картинку (превью) нужно искать во внешней sdc-базе, id которой является значением атрибута (id в атрибуте – 4-символьный, без расширения “sdc”). В этом случае значение параметра url (если оно указано) следует игнорировать. Картинка в данном случае будет прикреплена к одному из слов в одном из списков внешней базы (см. “listidx”, “key”);
- listidx – содержит номер списка слов во внешней sdc-базе, в котором нужно искать основную картинку (превью). Имеет смысл только при наличии атрибута dictid;
- key – содержит текстовый ключ для поиска записи в списке слов с номером listidx во внешней базе с идентификатором dictid (имеет смысл только при наличии атрибутов dictid и listidx). Т.о. для получения основной картинки (превью) из внешней базы, нужно открыть указанную базу, перейти в требуемый список слов и поискать слово в списке по ключу (изображение будет прикреплено к записи списка). При формировании внешних баз предполагается, что ключ в тексте основной базы точно совпадает с записью в списке слов внешней базы;
- full_url (или url_f) – содержит имя файла с полноразмерной картинкой, которая должна быть показана при клике на основную картинку (превью), например, во всплывающем окне. Если этот атрибут отсутствует, то при клике на основную картинку можно либо показывать эту же картинку, либо не делать ничего (определяется логикой приложения);
- show_width_f – содержит ширину полноразмерной картинки в пикселах, которую нужно установить для картинки при отображении. Это не реальная ширина картинки, которая зашита внутри самого файла изображения, а именно рекомендуемая ширина фрейма отображения. В основном это используется для картинок в формате svg;
- show_height_f – содержит высоту полноразмерной картинки в пикселах, которую нужно установить для картинки при отображении. Это не реальная высота картинки, которая зашита внутри самого файла изображения, а именно рекомендуемая высота фрейма отображения. В основном это используется для картинок в формате svg;
- dictid_f – содержит dictid базы (id в атрибуте – 4-символьный, без расширения “sdc”), в которой нужно искать само изображение (аналогично “dictid”);
- listidx_f – содержит индекс списка внешней базы, в котором нужно искать изображение (аналогично “listidx”);
- key_f – содержит текстовый ключ, по которому картинку можно найти во внешней базе (аналогично “key”);
В настоящий момент при формировании перевода не предполагается наличие внутри картинок других блоков.
Информация для разработчиков приложений
/// Получает номер картинки текущего слова в текущем списке слов
ESldError GetCurrentWordPictureIndex(CSldVector<Int32> & aPictureIndexes);
/// Получает номер картинки текущего слова в указанном списке слов
ESldError GetCurrentWordPictureIndex(Int32 aListIndex, CSldVector<Int32> & aPictureIndexes);
/// Получает картинку по номеру
virtual ESldError GetWordPicture(Int32 aPictureIndex, Int32 aMaxSideSize, TImageElement* aImageElement);
/// Получает информацию о загруженной картинке
ESldError GetPictureInfo(TImageElement* aImageElement, UInt32* aFormatType, TSizeValue* aWidth = 0, TSizeValue* aHeight = 0) const;
/// Освобождает ресурсы с картинкой
ESldError ReleaseWordPicture(TImageElement* aImageElement) const;
/// Индекс картинки, обозначающий, что картинки нет
#define SLD_INDEX_PICTURE_NO