HTML5 Canvas base64编码字符串到xml和MS Word

时间:2014-03-06 13:16:59

标签: jquery xml vbscript ms-word base64

我正在研究涉及Panasonic Toughpad的概念验证。目标是使用内部网络摄像头记录字段中的缺陷,对其进行分类并将数据保存到xml。 此外,拍摄的照片需要用手写笔进行编辑以突出显示感兴趣的区域。然后,这些信息将从xml读取到MS Word文档中,包括图像。 尽管Windows 8,Toughpad仍在运行Windows 7. Atm我只允许使用ASP或MS InfoPath。 (不要问我为什么......)

我正在使用HTML5和jquery(ISS服务器)访问网络摄像头,将快照保存到画布中并使用一些其他功能在画布图像上绘制。原始图像为640x380像素。

然后我使用canvas.toDataURL(“image / jpeg”)来获取编码流。这将由ajax传递给经典的asp脚本(vbscript),后者又将数据添加/编辑/删除到xml。

由于某种原因,我不能将base64字符串作为二进制文件放入xml。

该节点被分类为bin.base64:

nodeB64.DataType = "bin.base64" ' stores binary as base64 string
nodeB64.Text = Mid(base64String2, InStr(base64String2, ",") + 1) ' append data text (all data after the comma, so we will have the pure encoded data)

错误:

msxml3.dll error "80004005'
Error Parsing "/9k...." as bin.base64 datatype

所以现在我将base64存储为String Node。

在所有HTML网页中,我可以完美地显示图像:

<img src="data:image/jpeg;base64,/9j/4AAQSkZJRg....."/>

图像需要嵌入到MS Word中。 MS Word无法理解base64图像字符串。因为它不会显示图片。

所以我尝试创建一个保存到磁盘或内存的二进制文件,以便使用vbscribt对MS Word使用mem函数或经典图像插入功能。

示例:

Set tmpDoc = Server.CreateObject("MSXML2.DomDocument")
Set nodeB64 = tmpDoc.CreateElement("b64")
nodeB64.DataType = "bin.base64" 
nodeB64.Text = {my_base_64_encoded_string}

Dim oStream
Set oStream = Server.CreateObject("ADODB.Stream")
oStream.Type=1
oStream.Open
oStream.Write nodeB64.NodeTypedValue
oStream.SaveToFile "C:\test10.jpg" , 2
oStream.Close()

这不适用于网络摄像头通常拍摄的图像。

使用以下base64编码的gif字符串作为测试(非常小的gif图标):

R0lGODlhDwAPAKECAAAAzMzM///// wAAACwAAAAADwAPAAACIISPeQHsrZ5ModrLlN48CXF8m2iQ3YmmKqVlRtW4ML wWACH+H09wdGltaXplZCBieSBVbGVhZCBTbWFydFNhdmVyIQAAOw==

一切正常。插入xml文件并将其另存为二进制图像文件。

以下示例要么没有充分期望,要么根本没有

Not creating errors, but saved jpeg file is shown incomplete

This normal webcam picture with drawings does trigger all mentioned errors

唯一的区别是base64字符的长度可能非常长。

我把信封推得太远了吗?或者他们的技术我还没有发现谷歌吗?

0 个答案:

没有答案