如何将图像转换为字符串,如果是utf或ancii或其他什么都不重要。我想做的就是拍摄图像并将其转换为文本,以便将其存储在文本文件中,然后对其进行解码。
是的,当然我用JS做这件事,而我试图转换的图片都是JPEG。
答案 0 :(得分:2)
您可以在画布中绘制图像,将其编码为base64,然后将其用作文本。几乎所有语言都可以在base64和图像之间进行转换。
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img= new Image();
img.src = "your url to image";
ctx.drawImage(img,0,0);
c.toDataURL();
//c now contains the base64 encoding of your image
画布也可以动态创建,而不是作为页面的一部分。您还可以等待图像上的onLoad事件。
答案 1 :(得分:1)
使用canvas ..这是从程序中复制的代码
function fun_nam(url,back, op){
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(op);
back(dataURL);
canvas = null;
};
img.src = url;
}
一些细节......
HTMLCanvasElement.toDataURL()方法返回一个数据URI,其中包含由type参数指定的格式的图像表示(默认为PNG)。返回的图像分辨率为96 dpi。
语法:canvas.toDataURL(type,encoderOptions);
<强>参数强>
输入|可选
encoderOptions |可选
返回值
实际上我们使用drawImage函数绘制图像数据,然后使用toDataURL
函数获取base-64编码的图像数据:url。
只有在加载完整的图像后才能进行编码。否则解码后会得到一些破碎/灰色类型的图像。
答案 2 :(得分:0)
您可以在画布中显示图像,然后将画布转换为blob
https://developer.mozilla.org/de/docs/Web/API/HTMLCanvasElement/toBlob
答案 3 :(得分:0)
您可以将图像转换为文本数据。检查上一个答案。
使用JavaScript获取图像数据? https://stackoverflow.com/a/934925/5378536
但是,有CORS问题。检查以下问题。
toDataURL抛出Uncaught Security异常https://stackoverflow.com/a/20027883/5378536
祝你好运。