首先,我在 SSMS 上以二进制形式存储了一些图像,这些图像以字节大小超过 10K 的字节格式存储。
到目前为止,我已经尝试了下面列出的几种技术。
请注意,我读到渲染时的 base64 图像通常用于 64 x 64 实例的小型基本类型图像。
问题不是将图像转换为base64,而是找到一种方法,使用 Jquery 从 DB 逐个请求图像,然后添加图像 base64 到 DOM 上的图像属性。
//注意:请求的图像从 api 端转换为 Base64,但图像二进制文件可能很大,因此当检查说文件大小太大时,Base64 总是在浏览器 img src 属性上返回较大的结果。
请不要指出我说它用于小图像正在寻找一种解决方案,有人使它可以处理较大的图像。
调整大小不是一个选项,因为它会破坏文档分辨率以及查看文档的方式。不过,如果有解决方案,您可以指出我吗?我尝试调整图像大小只是为了让您知道,但如果拉伸(stretch),图像在演示时会显得很高兴,这将是显而易见的。
记住我要求更好的方法,或者我是否可以使用带有大型 Base64 的 Jquery 在 dom 上加载多个图像。
我还知道我可以使用链接显示图像列表,然后允许用户单击该链接来查看该特定图像。
我正在使用 Dotnet 4.5 MVC
我尝试过的代码:
$(function () {
$(".my-image-tag").each(function () {
var img = $(this);
var apiUrl = "www.xxxx.com";
console.log(
$.ajax({
type: 'GET',
url: apiUrl ,
data: { 'Id': img.attr('data-id') },
}).done(function (data) {
console.log(data.Image);
img.attr('src', 'data:image/jpg;base64,' + data.Image);
}).error(function (jqXHR, textStatus, errorThrown) {
///Need a Error Logger Page
})
);
});
});
最佳答案
正如 Rup 在评论中建议的那样,您最好的选择可能是在 API 中创建一个提供图像服务的方法。
<img src="/controller/getimage/imagename">
然后在你的 Controller 中类似...
public ActionResult getimage(string imagename)
{
var data = //call database to get image data
var file = //convert data into File "image/jpeg" or whatever file type you use
return file;
}
关于jquery - 显示大型 Base64 图像 MVC 4 DOTNET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50105207/