2013-03-19 79 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

相關問題