2013-03-19 82 views
7

我正在尝试使用base64 + phonegap 2.5将html5 canvas数据保存到服务器。
canvas.toDataURL不会导致图像/ jpeg数据

平台:windows phone 7和8,Android和IOS。

图像调整大小的基本需求是在通过服务器发送之前优化数据。

我有Android平台的base64响应方法,该方法是如下

问题问题:

  1. Android 4.2版:我写了这个代码c.toDataURL("image/jpeg");但我得到这个data:image/png;base64
  2. 的Android 2.3 :我无法检索base64数据

A我做错了什么?

+0

jalsa karrr米兰字节 – 2015-06-19 05:33:10

回答

10
  • 的Android 2.3:我无法检索的base64数据

canvas.toDataURL不旧的Android版本的支持。

有对于一个js修复,但表现可能不是很好: https://code.google.com/p/todataurl-png-js/

在这里获得更多的信息: toDataURL not working on android browsers

  • Android 4.2版:我写了这个代码c.toDataURL( “图像/ JPEG”);但我得到这些数据:image/png; base64

Android 4.x支持canvas.toDataURL;但是,它不支持jpeg格式(如果您要求使用jpeg,则会返回png)。

更多细节: https://github.com/scottjehl/Device-Bugs/issues/33

+0

非常感谢您的重播Luis。它帮助我很多。 – amorbytes 2013-06-13 12:36:38

+0

安卓4.1+上的chrome似乎给出了“image/jpeg”,如果你问它的话 – 2014-09-11 00:21:07

2

旧版浏览器(WebKits)仅支持image/png,这是您可以信赖的唯一编解码器。稍后添加img/jpeg,并且仍然不受许多浏览器支持。

对于Android 2.3:尝试如果你能在香草浏览器中做到这一点。如果它在那里工作,那么它是一个PhoneGap问题,应该向作者报告。

+0

非常感谢您的更新。请你帮我解决这个问题。 其实我试图用画布来缩小图像的大小。所以我正在做的是在画布上加载图像并将其重绘为300x300尺寸,然后获取画布的base64字符串。而画布也是310x310像素。但是当生成的base64字符串大于使用android设备生成的base64原始图像字符串时。 – amorbytes 2013-03-19 10:16:59

+0

如果您使用此特定信息打开另一个问题会更好,以便讨论的上下文保持整洁并可搜索 – 2013-03-19 10:20:25

+0

我明白您的观点。我也会这样做。 – amorbytes 2013-03-19 10:22:55

相关问题