Javascript 从已在base64中编码的画布面板中提取文本
我使用html画布和context.filltext来存储经度和纬度,并使用context.drawimage来存储图像,从而对图像进行了地理标记。然后,我使用todataURL()函数对base64中的画布进行编码,并将其保存到数据库中。然后我从我的数据库中加载了这些数据,有没有办法在javascript中解码数据并提取经度和纬度?没有,您拥有的是一个简单的图像文件,与任何其他图像文件一样。画布不会将您绘制到其中的图形(包括文本)分隔开(将变成光栅化) 你必须:Javascript 从已在base64中编码的画布面板中提取文本,javascript,html,canvas,html5-canvas,base64,Javascript,Html,Canvas,Html5 Canvas,Base64,我使用html画布和context.filltext来存储经度和纬度,并使用context.drawimage来存储图像,从而对图像进行了地理标记。然后,我使用todataURL()函数对base64中的画布进行编码,并将其保存到数据库中。然后我从我的数据库中加载了这些数据,有没有办法在javascript中解码数据并提取经度和纬度?没有,您拥有的是一个简单的图像文件,与任何其他图像文件一样。画布不会将您绘制到其中的图形(包括文本)分隔开(将变成光栅化) 你必须: 将数据作为元数据提供给服务器
- 将数据作为元数据提供给服务器
- 在您的图像上运行是因为此元数据不是一个选项(与画布或html5本身无关)
- 将原始图像发送到服务器,提取那里的EXIF数据,并进行刻录
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数据,并进行刻录
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数据,并进行刻录
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数据,并进行刻录
var geoImage = {
image: canvas.toDataURL(),
longitude: "xxxx",
latitude: "yyyy"
}
然后将其编码为JSON并发送到服务器:
var serverString = JSON.stringify(geoImage);
OCR作为另一种选择,我只会记录