带有 base64 图像的 v-card-media
v-card-media with base64 image
我正在 ColdFusion 中创建一个验证码图像,并使用 Taffy 将其作为 REST 提要返回。然后显示在 Vuetify
ColdFusion/太妃糖代码
<cfscript>
component extends="taffy.core.resource" taffy_uri="/captcha" {
function get() hint="Sends one out" {
var captcha = CreateUUID().right(4) & DayOfWeekAsString(DayOfWeek(now())).left(1).lcase() & "!";
// This is ColdFusion
var tempFile = "ram:///#captcha#.txt";
var myImage = ImageCreateCaptcha(100, 300, captcha, "low");
ImageWriteBase64(myImage, tempFile, "png", true, true);
var myfile = FileRead(tempFile);
FileDelete(tempFile);
return rep({'status' : 'success', 'time' : GetHttpTimeString(now()),
'captcha_hash' : hash(captcha), 'captcha_image' : myFile
});
}
...
</cfscript>
它returns是这样的:
{"status":"success","captcha_image":"data:image/png;base64,iVBORw0KG /d67W8EALALKJQAABBYAAAILABAYAEAILAAdr...
Vue
我可以通过
显示图片
<img :src="captcha_image" height="100px;">
Vuetify
如果我不使用高度,图像根本出不来
如果我使用这样的高度,它的宽高比会出错。
<v-card-media :src="captcha_image" height="100px"></v-card-media>
有解决办法吗?或者 <v-card-media
是错误的工具吗?
原因是v-card-media
将图像用作固定高度的div
的背景图像。
如果你想保持纵横比。您可以使用带有 width="100%"
的 <img />
标签。
<img src="data:image/jpeg;base64,/9j/4AAQ..." width="100%">
演示:https://codepen.io/jacobgoh101/pen/bMrBWx?&editors=101
<div id="app">
<v-app id="inspire">
<v-layout>
<v-flex xs12 sm6 offset-sm3>
<v-card>
<img src="data:image/jpeg;base64,/9j/4AAQ..." width="100%">
<v-card-title primary-title>
...
</v-card-title>
<v-card-actions>
...
</v-card-actions>
</v-card>
</v-flex>
</v-layout>
</v-app>
</div>
我正在 ColdFusion 中创建一个验证码图像,并使用 Taffy 将其作为 REST 提要返回。然后显示在 Vuetify
ColdFusion/太妃糖代码
<cfscript>
component extends="taffy.core.resource" taffy_uri="/captcha" {
function get() hint="Sends one out" {
var captcha = CreateUUID().right(4) & DayOfWeekAsString(DayOfWeek(now())).left(1).lcase() & "!";
// This is ColdFusion
var tempFile = "ram:///#captcha#.txt";
var myImage = ImageCreateCaptcha(100, 300, captcha, "low");
ImageWriteBase64(myImage, tempFile, "png", true, true);
var myfile = FileRead(tempFile);
FileDelete(tempFile);
return rep({'status' : 'success', 'time' : GetHttpTimeString(now()),
'captcha_hash' : hash(captcha), 'captcha_image' : myFile
});
}
...
</cfscript>
它returns是这样的:
{"status":"success","captcha_image":"data:image/png;base64,iVBORw0KG /d67W8EALALKJQAABBYAAAILABAYAEAILAAdr...
Vue
我可以通过
显示图片<img :src="captcha_image" height="100px;">
Vuetify
如果我不使用高度,图像根本出不来
如果我使用这样的高度,它的宽高比会出错。
<v-card-media :src="captcha_image" height="100px"></v-card-media>
有解决办法吗?或者 <v-card-media
是错误的工具吗?
原因是v-card-media
将图像用作固定高度的div
的背景图像。
如果你想保持纵横比。您可以使用带有 width="100%"
的 <img />
标签。
<img src="data:image/jpeg;base64,/9j/4AAQ..." width="100%">
演示:https://codepen.io/jacobgoh101/pen/bMrBWx?&editors=101
<div id="app">
<v-app id="inspire">
<v-layout>
<v-flex xs12 sm6 offset-sm3>
<v-card>
<img src="data:image/jpeg;base64,/9j/4AAQ..." width="100%">
<v-card-title primary-title>
...
</v-card-title>
<v-card-actions>
...
</v-card-actions>
</v-card>
</v-flex>
</v-layout>
</v-app>
</div>