使用DataURL字符串将图像上传到picasa

时间:2012-07-18 06:28:41

标签: java javascript picasa

我正在使用HTML5创建一个完全基于Web的“相机”应用程序。 (没有phonegap)

我现在有一个DataURL,我获得如下

canvas.getContext("2d").drawImage(video, 0, 0, 640, 480, 0, 0, 640, 480);
var img = canvas.toDataURL("image/png");

我将此作为字符串发送到服务器端后,我能将其上传到picasa吗?

以下代码无效并给了我一个“com.google.gdata.util.InvalidEntryException:OK 不是图像。“例外。(imgStr是上面的DataURL)

MediaByteArraySource imageByteArr = new MediaByteArraySource(imgStr.getBytes("UTF-16LE"), "image/jpeg");
myPhoto.setMediaSource(imageByteArr);
PhotoEntry returnedPhoto = client.insert(imagePostUrl, myPhoto);

提前致谢

编辑: 字符串看起来像这样的“data:image / png; base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAgAElEQVR4Xuy92ZI ....”

1 个答案:

答案 0 :(得分:0)

需要在将字符串传递给MediaBytearraySource之前对其进行解码。

String imgStrBase64 = req.getParameter("photo").split(",")[1];          
byte[] dataBytes= Base64.decode(imgStrBase64);
MediaByteArraySource imageByteArr = new MediaByteArraySource(dataBytes, "image/jpeg");

希望这有助于某人。