Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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 从已在base64中编码的画布面板中提取文本_Javascript_Html_Canvas_Html5 Canvas_Base64 - Fatal编程技术网

Javascript 从已在base64中编码的画布面板中提取文本

Javascript 从已在base64中编码的画布面板中提取文本,javascript,html,canvas,html5-canvas,base64,Javascript,Html,Canvas,Html5 Canvas,Base64,我使用html画布和context.filltext来存储经度和纬度,并使用context.drawimage来存储图像,从而对图像进行了地理标记。然后,我使用todataURL()函数对base64中的画布进行编码,并将其保存到数据库中。然后我从我的数据库中加载了这些数据,有没有办法在javascript中解码数据并提取经度和纬度?没有,您拥有的是一个简单的图像文件,与任何其他图像文件一样。画布不会将您绘制到其中的图形(包括文本)分隔开(将变成光栅化) 你必须: 将数据作为元数据提供给服务器

我使用html画布和context.filltext来存储经度和纬度,并使用context.drawimage来存储图像,从而对图像进行了地理标记。然后,我使用todataURL()函数对base64中的画布进行编码,并将其保存到数据库中。然后我从我的数据库中加载了这些数据,有没有办法在javascript中解码数据并提取经度和纬度?

没有,您拥有的是一个简单的图像文件,与任何其他图像文件一样。画布不会将您绘制到其中的图形(包括文本)分隔开(将变成光栅化)

你必须:

  • 将数据作为元数据提供给服务器
  • 在您的图像上运行是因为此元数据不是一个选项(与画布或html5本身无关)
  • 将原始图像发送到服务器,提取那里的EXIF数据,并进行刻录
例如,您可以创建一个对象,其中包含来自toDataURL()的数据uri和long/lat数据:

var geoImage = {
    image: canvas.toDataURL(),
    longitude: "xxxx",
    latitude: "yyyy"
}
然后将其编码为JSON并发送到服务器:

var serverString = JSON.stringify(geoImage);
OCR作为另一种选择,我只建议您在无法访问原始long/lat数据时使用。凭借在该领域的一些经验,我知道你将面临不少挑战,但这并不稳定。一个非常好的OCR模块要花很多钱,而便宜的模块会给你带来很多错误。如果背景清晰,字体易于分析等等,这也取决于你如何在图像上绘制文本

显而易见的第三种选择可能出于质量原因更好。当你把你的图像画到画布上,然后把它提取出来,你会失去质量。由于大多数相机仅将图像存储为JPEG或RAW格式,因此您只有一个画布选项,即JPEG,这意味着需要使用“有损”压缩对其进行重新压缩。当然,您可以提取为PNG,但在大多数情况下,这会增加文件大小


您还可以在服务器端提取EXIF数据。然后,您可以将原始图像与刻录版本一起存储。

不,您拥有的是与任何其他图像文件一样的简单图像文件。画布不会将您绘制到其中的图形(包括文本)分隔开(将变成光栅化)

你必须:

  • 将数据作为元数据提供给服务器
  • 在您的图像上运行是因为此元数据不是一个选项(与画布或html5本身无关)
  • 将原始图像发送到服务器,提取那里的EXIF数据,并进行刻录
例如,您可以创建一个对象,其中包含来自toDataURL()的数据uri和long/lat数据:

var geoImage = {
    image: canvas.toDataURL(),
    longitude: "xxxx",
    latitude: "yyyy"
}
然后将其编码为JSON并发送到服务器:

var serverString = JSON.stringify(geoImage);
OCR作为另一种选择,我只建议您在无法访问原始long/lat数据时使用。凭借在该领域的一些经验,我知道你将面临不少挑战,但这并不稳定。一个非常好的OCR模块要花很多钱,而便宜的模块会给你带来很多错误。如果背景清晰,字体易于分析等等,这也取决于你如何在图像上绘制文本

显而易见的第三种选择可能出于质量原因更好。当你把你的图像画到画布上,然后把它提取出来,你会失去质量。由于大多数相机仅将图像存储为JPEG或RAW格式,因此您只有一个画布选项,即JPEG,这意味着需要使用“有损”压缩对其进行重新压缩。当然,您可以提取为PNG,但在大多数情况下,这会增加文件大小


您还可以在服务器端提取EXIF数据。然后,您可以将原始图像与刻录版本一起存储。

不,您拥有的是与任何其他图像文件一样的简单图像文件。画布不会将您绘制到其中的图形(包括文本)分隔开(将变成光栅化)

你必须:

  • 将数据作为元数据提供给服务器
  • 在您的图像上运行是因为此元数据不是一个选项(与画布或html5本身无关)
  • 将原始图像发送到服务器,提取那里的EXIF数据,并进行刻录
例如,您可以创建一个对象,其中包含来自toDataURL()的数据uri和long/lat数据:

var geoImage = {
    image: canvas.toDataURL(),
    longitude: "xxxx",
    latitude: "yyyy"
}
然后将其编码为JSON并发送到服务器:

var serverString = JSON.stringify(geoImage);
OCR作为另一种选择,我只建议您在无法访问原始long/lat数据时使用。凭借在该领域的一些经验,我知道你将面临不少挑战,但这并不稳定。一个非常好的OCR模块要花很多钱,而便宜的模块会给你带来很多错误。如果背景清晰,字体易于分析等等,这也取决于你如何在图像上绘制文本

显而易见的第三种选择可能出于质量原因更好。当你把你的图像画到画布上,然后把它提取出来,你会失去质量。由于大多数相机仅将图像存储为JPEG或RAW格式,因此您只有一个画布选项,即JPEG,这意味着需要使用“有损”压缩对其进行重新压缩。当然,您可以提取为PNG,但在大多数情况下,这会增加文件大小


您还可以在服务器端提取EXIF数据。然后,您可以将原始图像与刻录版本一起存储。

不,您拥有的是与任何其他图像文件一样的简单图像文件。画布不会将您绘制到其中的图形(包括文本)分隔开(将变成光栅化)

你必须:

  • 将数据作为元数据提供给服务器
  • 在您的图像上运行是因为此元数据不是一个选项(与画布或html5本身无关)
  • 将原始图像发送到服务器,提取那里的EXIF数据,并进行刻录
例如,您可以创建一个对象,其中包含来自toDataURL()的数据uri和long/lat数据:

var geoImage = {
    image: canvas.toDataURL(),
    longitude: "xxxx",
    latitude: "yyyy"
}
然后将其编码为JSON并发送到服务器:

var serverString = JSON.stringify(geoImage);
OCR作为另一种选择,我只会记录