【发布时间】:2012-12-16 03:25:56
【问题描述】:
我一直在尝试通过将图像本地存储在我的文件系统上来解码二维码。我正在尝试使用 HTML5/Javascript 创建一个 Windows 8 Metro 应用程序来执行此操作。我可以生成代码,但我在解码时遇到问题。
我确实参考了这些以前的帖子
Does anyone know of a QR Code Reader library for a Windows 8 Metro App?
此后使用 esponce Web 服务并向 http://www.esponce.com/api/v3/decode?format=png 发出简单的 HTTP-POST 请求,正文中包含图像数据,但由于 404 错误,响应为空,因此没有返回任何内容。这是我尝试过的 sn-p:
var picDiv = document.getElementById("picDiv");
var picturesLibrary = Windows.Storage.KnownFolders.picturesLibrary;
picturesLibrary.getFileAsync("code.bmp").then(
function completeFile(file) {
return file.openAsync(Windows.Storage.FileAccessMode.readWrite);
xhrDiv.innerText = "File Opened";
}).then(
function completeStream(stream) {
// Do processing.
var blob = MSApp.createBlobFromRandomAccessStream("image/bmp", stream);
xhrDiv1.innerText = stream;
return WinJS.xhr({ type: "POST", url:"http://www.esponce.com/api/v3/decode>", data: blob });
}).then(
function (request) {
picDiv.textContent = "uploaded file";
picDiv.innerText = request.statusText;
picDiv.innerText = request.status;
},
function (request) {
picDiv.textContent = "error uploading file";
picDiv.innerText = request.statusText;
// picDiv.innerText = request.statusText;
// picDiv.innerText = request.status;
});
请帮我弄清楚上述方法有什么问题。
【问题讨论】:
-
呃,为什么要使用外部服务进行二维码解码?最好在本地执行此操作 - 无需为此浪费昂贵的数据带宽。
-
在本地我尝试使用 zxing.net 移植的 WinRT 库。但是在运行时几乎没有其他问题。您能否建议在 win8 中执行此操作的任何其他库?
-
我目前正在为 Windows 运行时组件 WinMD 开发一个 zxing.net 端口,它可以与 HTML5/Javascript 一起使用。目前没有预构建的二进制文件,但您可以从这里获取当前源:zxingnet.svn.codeplex.com/svn/branches/WINMD
标签: javascript windows-8 microsoft-metro qr-code