当前位置: 首页 > 面试题库 >

如何将图像文件放在json对象中?

越望
2023-03-14
问题内容

我正在建立一个视频游戏数据库,每个数据库都包含游戏的名称,类型和图像。是否可以将图像放入db的json对象中?如果没有解决的办法?


问题答案:

我可以考虑通过两种方式做到这一点:

1。

将文件存储在文件系统中的任何目录中(例如dir1)并重命名,以确保每个文件的名称都是唯一的(可能是时间戳记)(例如xyz123.jpg),然后将该名称存储在某些数据库中。然后,在生成JSON的同时,您提取此文件名并生成完整的URL(将为http://example.com/dir1/xyz123.png)并将其插入JSON中。

2。

Base
64编码,基本上是一种以ASCII文本编码任意二进制数据的方式。每3个字节的数据需要4个字符,最后可能还要填充一点。基本上,输入的每6位均以64个字符的字母编码。“标准”字母使用AZ,az,0-9和+和/,并带有=作为填充字符。有URL安全变体。因此,这种方法将允许您将图像直接放入MongoDB中,同时将其存储在图像中并在获取图像时进行解码,但是它也有一些缺点:

  • base64编码使文件大小比原始二进制表示大33%,这意味着在线传输更多数据(在移动网络上这可能会非常痛苦)
  • IE6或IE7不支持数据URI。
  • 与二进制数据相比,base64编码的数据可能需要更长的处理时间。

资源

将图像转换为DATA URI

A.)画布

将图像加载到图像对象中,将其绘制到画布上,然后将画布转换回dataURL。

function convertToDataURLviaCanvas(url, callback, outputFormat){
    var img = new Image();
    img.crossOrigin = 'Anonymous';
    img.onload = function(){
        var canvas = document.createElement('CANVAS');
        var ctx = canvas.getContext('2d');
        var dataURL;
        canvas.height = this.height;
        canvas.width = this.width;
        ctx.drawImage(this, 0, 0);
        dataURL = canvas.toDataURL(outputFormat);
        callback(dataURL);
        canvas = null; 
    };
    img.src = url;
}

用法

convertToDataURLviaCanvas('http://bit.ly/18g0VNp', function(base64Img){
    // Base64DataURL
});

支持的输入格式
image/pngimage/jpegimage/jpgimage/gifimage/bmpimage/tiffimage/x-iconimage/svg+xmlimage/webpimage/xxx

B.)FileReader

通过XMLHttpRequest将图像加载为Blob,然后使用FileReader API将其转换为数据URL。

function convertFileToBase64viaFileReader(url, callback){
    var xhr = new XMLHttpRequest();
    xhr.responseType = 'blob';
    xhr.onload = function() {
      var reader  = new FileReader();
      reader.onloadend = function () {
          callback(reader.result);
      }
      reader.readAsDataURL(xhr.response);
    };
    xhr.open('GET', url);
    xhr.send();
}

这种方法

  • 缺乏浏览器支持
  • 有更好的压缩
  • 也适用于其他文件类型。

用法

convertFileToBase64viaFileReader('http://bit.ly/18g0VNp', function(base64Img){
    // Base64DataURL
});


 类似资料:
  • 问题内容: 我想将图像文件添加到json对象中。是否可以将图像文件添加到json对象中? 我尝试了下面的代码,但它不起作用?因为我想将json对象发送到服务器,所以服务器将读取我的图像文件并将其存储到该数据库中。 因此,当我打印此json对象时,它仅显示图像存储的图像路径。我想要文件以将其发送到服务器。 问题答案: 您将需要阅读从入,并把该对象到您。 您还应该看看以下帖子: JSON中的ByteA

  • 我必须将对象作为有效负载发送到后端API。如何将Base64图像文件URI转换为下面提到的文件对象格式?我试图寻找其他解决方案,但这些解决方案都是Blob到文件转换或base64数据url转换。谁能帮忙吗? Base64图像文件URL 这需要转化为 文件对象

  • 我创建了一个可以将图像导入标签的Swing应用程序,但我想做的是将导入的图像放入一个内部框架中,该框架将在图像删除后创建。 将图像放入Java应用程序 创建一个内部框架 使图像出现在内部框架中,而不是标签出现在JFrame中

  • 因此,我有一个网络摄像头功能,可以将base64 URI返回给我,但我无法将其保存到AWS,因为它需要一个图像对象。有没有办法将URI转换成javascript对象?(文件对象与文件浏览器输入标记返回的相同) 我想把这个换成 这件事 可能吗?怎样提前谢谢。。

  • 问题内容: 我做了一个Java应用程序。并将所有类捆绑在jar文件中。.我从netbeans运行项目,我的应用程序运行成功..但是我将我的.jar文件放在另一个地方,然后从那里运行..我没有我的应用程序使用的图标..在代码中,我从项目文件夹中存在的images目录中获取我的图标。 现在,我想知道如何将这些图像文件呈现给最终用户(就像我们呈现.jar文件一样)。 问题答案: 似乎这里有两个问题: 在

  • 我已经设法使用Apache的Javafx和PDFbox将文本放入pdf文件中。现在,我正在尝试将拍摄场景屏幕截图的图像放入pdf文档中。 当我使用InputStream和OutputStream类时,会创建文档,但当我打开文档时,Adobe和其他程序会给我一个错误,说Acrobat无法正确显示页面。当我使用上面代码中注释掉的BuffereImage类时,文档很简单,没有创建,我不知道为什么。 笔记