XSL - 显示存储为 blob 的图像

XSL - Show an image stored as a blob

最初,我在 SQL 服务器中有一个 table,其字段包含 URL 图片。

我创建了一个 XSL 模板来自定义 ArcMap 中 table 的信息 window。要显示该图像,我只需要这样做:

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

现在,图片以 blob 形式存储在数据库中。一个 VARBINARY 字段。

如何从 blob 源设置 <img> 标签?

我一直在阅读类似问题的几个答案here and here,但它们不适合我的情况,或者我无法做到。

甚至可以仅使用 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>

如果图像是 FOP(可能)支持的格式,您可以将图像转换为 Base64 (?) FOP 可以使用 data: 方案将图像数据内联在 src 属性 值中(我找不到任何说它可以或不能的东西) 然后 你可以这样做:

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

否则,您可能需要想出一个 URL 来放入 src 属性 值,以便 FOP 可以直接从数据库访问图像。