XSL - Показать изображение, сохраненное в виде BLOB-объекта. - PullRequest
0 голосов
/ 26 апреля 2018

Первоначально у меня была таблица в SQL Server с полем, содержащим URL-адрес изображения.

Я создал шаблон XSL для настройки информационного окна этой таблицы в ArcMap. Чтобы показать это изображение, мне нужно было только сделать это:

<xsl:variable name="pic" select="$theField[FieldName='PIC']/FieldValue"/>
<img border="0" src="{$pic}" width="200"/>

Теперь картинка хранится в виде капли в базе данных. Поле VARBINARY.

Как установить тег <img> из источника BLOB-объектов?

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

Можно ли сделать это только с помощью шаблона XSL?

Я уже пробовал это (и подобные варианты):

<fo:instream-foreign-object content-type="image/png">
    <xsl:variable name="pic" select="$theField[FieldName='PIC']/FieldValue"/>
    <img border="0" src="{$pic}" width="200"/>
</fo:instream-foreign-object>

1 Ответ

0 голосов
/ 26 апреля 2018

Если изображение имеет формат, который поддерживает FOP (вероятно) и , вы можете преобразовать изображение в Base64 (?) и FOP может использовать схему data: для встраивания данные изображения в значении свойства src (я не могу найти ничего, чтобы сказать, что он может или не может) тогда вы сможете сделать что-то вроде:

<fo:external-graphic
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAB
3RJTUUH1AIFCDIuN9BfzQAAAAlw ... ="/>

В противном случае вам может понадобиться URL-адрес, чтобы ввести значение свойства src, чтобы FOP мог получить доступ к изображению непосредственно из базы данных.

...