如何使用TagLib将字节数组(Blob)渲染为图像

Mah*_*him 1 grails groovy

如何呈现存储在使用自定义标签的数据库中的图像文件(BLOB),I用于渲染标志,但图像被粉碎并输出为字节数组.

这是我试过的:

def logo = { attrs, body ->
    if(session?.companyId && session?.companyId != 'null'){
        Company company = Company.findById(session?.companyId)
        if (!company || !company?.logo) {
            println "No response..."
            out <<"<img src='/cdc/static/images/logo.png' width='150' height='70' />"
        }
        else{
            println "Writing..."
            out << "<img src='"
            out << company?.logo
            out << "' width='150' height='70' />"
        }
    }
    else{
        println "No response..."
        //out <<"<img src='/cdc/static/images/logo.png' width='150' height='70' />"
    }
}
Run Code Online (Sandbox Code Playgroud)

输出如下:

在此输入图像描述

在此输入图像描述

公司如何?.logo呈现为图像而不是字节数组

Jon*_*eet 6

听起来好像你想提供一个数据URI,基本上.为此,你需要这样的东西:

src="data:img/png;base64,xxx"
Run Code Online (Sandbox Code Playgroud)

其中"xxx"是base64格式的数据.

例如,使用此公共域base64库:

out << "<img src='data:img/png;base64,"
out << Base64.encode(company?.logo)
out << "' width='150' height='70' />"
Run Code Online (Sandbox Code Playgroud)