Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS:如何将image.png编码为base64代码以嵌入数据URI?_Javascript_Image_Base64_Uri_Jqxhr - Fatal编程技术网

Javascript JS:如何将image.png编码为base64代码以嵌入数据URI?

Javascript JS:如何将image.png编码为base64代码以嵌入数据URI?,javascript,image,base64,uri,jqxhr,Javascript,Image,Base64,Uri,Jqxhr,我有几个不同维度的.png位图,例如/img/dog.png和/img/cat.png如何通过JS加载我的图像的base64字符串?我的预期数据是这样的(但要长得多): 注意:我想取回这个字符串,它是我的文件,只是我的文件,没有剪过,也没有剪得更大。然后,我将它嵌入到SVG元素中,例如: <image href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB9AYAAACaOMR5AAAgAElyuiRTYUdG EQVR4XuydB5R

我有几个不同维度的.png位图,例如
/img/dog.png
/img/cat.png
如何通过JS加载我的图像的
base64
字符串?
我的预期数据是这样的(但要长得多):


注意:我想取回这个字符串,它是我的文件,只是我的文件,没有剪过,也没有剪得更大。然后,我将它嵌入到SVG
元素中,例如:

<image href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB9AYAAACaOMR5AAAgAElyuiRTYUdG
EQVR4XuydB5RdZfW3nZlk0gukk4QUQiCQEEil994RFBCkigpir4j+7V2xgygiIIgggoBUQTqkQIAACQktCamk90m
yfc8492u1/PdqSlMwslaWTNz7zlv2W/d+7f3b5e8r4H/fvzjH+/3pS996akGvva+b37zm4d27Nhx5Wc+85mxNb3r
7xhtvdFi3bl1VWVnZ2ptuumldVVXVIS+88MLAo4466tlPfOIT459//vmOe+2115L61E07D1i2bFmL7373uw/V5/n
GPEOfSs8666zmq1atasa/dbvvvvva73znOwffeOONp5SXl1e89NJLX37xxRfb3HHHHatbtmy5//XXX3/yRz7ykds
+//nPP92Y+nzntddea8+PNchi/Qc/+MHKb33rW4d84xvfeMR62rdvXzl+/Ph1yKjZzjvvvMZnly5duvquu+46sHX
r1mtow7pDDjnk5aFDh64s1F/Czw3+/tvf/nakMq5Pu1555ZW29HXFF7/4xWNffvnl/s2bN6/s1q3bwj/84Q+3xhh
6EMfOmf58uVtqb/9+vXrmz399NPftey33367Ve/evVc7Hxjnqu23336l9X7qU5866Ve/+tWdH/7whz80e/bs7vvo
t9+LyLXlxz72sYfWrl274Z133qlq165dyT//+c8D7r333gN22GGHOdQ1as6cOfvy/Y4DBgy4AXncMWPGDGHsdfgW
...
...
...
vf/nakMq5Pu1555ZW29HXFF7/4xdfgvf/nakMq5Pu1sfgW29HXFF7/4xW">
</image>

我的最终项目看起来会是这样:)


另请参见:,您可以在这里下载SVG,但png目前只是一个链接,无法下载。

如果需要,您可以使用XMLHttpRequest将文件中的文本加载到JavaScript对象中。然后可以使用setAttribute为image元素的xlink:href属性赋值。但这个问题的答案可能是你想要的

好的。解决方案在中,并解释如下

0)目标:我希望附加以下内容:

<img src="data:[mime type;][charset=<charset>;][base64,][base64 data]"> // formula
<image src='data:image/png;base64,SGVsbG8s...IHdvcmxkIQ='></image>" // shortened example
2) 加载文件并转换(数据) 3) 运行整个系统: 我使用回调函数运行该函数,以附加带有base64 URI数据的image元素

d3.uri('http://fiddle.jshell.net/img/logo.png', function(data){ 
    $("#myImage").attr("src", "data:image/png;base64," + data);  // inject data:image in DOM
} )
来源:我得到了他们的帮助

服务器端 我最终可能会使用服务器端转换(源和)。可能的方法有:

echo -n `cat file.png` | base64 > output.txt
openssl base64 < path/to/file.png | tr -d '\n' > output.txt
cat path/to/file.png | openssl base64 | tr -d '\n' > output.txt
openssl base64 -in input.png -out output.txt
echo-n`cat file.png`|base64>output.txt
openssl base64output.txt
cat path/to/file.png | openssl base64 | tr-d'\n'>output.txt
openssl base64-in-input.png-out-output.txt

您是真的在问如何将图像转换为Base64,还是您已经有Base64了,这真的不清楚?=我有png或jpg图像。我是我今天发现的base64的新手。所以你有一个图像,你想把它转换成base64吗?好的,读了几遍之后,我似乎首先需要得到base64。这个问题似乎很有帮助。你的意思是有一个JS函数将.png作为txt加载,我会得到base64代码吗?我还以为你把它作为base64。这是您想在浏览器中执行的操作吗?有一个叫btoa的JavaScript函数。。。我已经在某个地方遇到了这只猫(强烈的内存挖掘),我的偏好是在浏览器获取并加载图像之前转换图像。但如果这不是您的计划,那么下面的问答将描述如何使用JavaScript进行转换。它可能不会在任何地方都起作用。
var getImageBase64 = function (url, callback) {
    // to comment better
    var xhr = new XMLHttpRequest(url), img64;
    xhr.open('GET', url, true); // url is the url of a PNG/JPG image.
    xhr.responseType = 'arraybuffer';
    xhr.callback = callback;
    xhr.onload  = function(){
        img64 = converterEngine(this.response); // convert BLOB to base64
        this.callback(null,img64) // callback : err, data
    };
    xhr.onerror = function(){ callback('B64 ERROR', null); };
    xhr.send();
};

// make it looks like other D3js requests
d3.uri = function(url, callback) {
    return getImageBase64(url, callback);
  };
d3.uri('http://fiddle.jshell.net/img/logo.png', function(data){ 
    $("#myImage").attr("src", "data:image/png;base64," + data);  // inject data:image in DOM
} )
echo -n `cat file.png` | base64 > output.txt
openssl base64 < path/to/file.png | tr -d '\n' > output.txt
cat path/to/file.png | openssl base64 | tr -d '\n' > output.txt
openssl base64 -in input.png -out output.txt