2013-03-19 16 views
7

Sto provando a salvare i dati della tela html5 sul server usando base64 + phonegap 2.5.
canvas.toDataURL non restituisce i dati immagine/jpeg

piattaforme: windows phone 7 e 8, Android e IOS.

La necessità di base per il ridimensionamento delle immagini è di ottimizzare i dati prima di inviarli tramite server.

Sto avendo problema con il metodo di risposta piattaforma Base64 Android, che sono i seguenti

Problemi:

  1. Android 4.2: Ho scritto questo codice c.toDataURL("image/jpeg"); ma ho ottenuto questo data:image/png;base64
  2. Android 2.3 : Non riesco a recuperare i dati di base64

A m Sto facendo qualcosa di sbagliato?

+0

jalsa karrr Milano byte –

risposta

10
  • Android 2.3: Non sono in grado di recuperare i dati base64

canvas.toDataURL non è supportato nelle vecchie versioni di Android.

C'è una correzione js per questo, ma le prestazioni potrebbero non essere molto buona: https://code.google.com/p/todataurl-png-js/

Controllare qui per ulteriori informazioni: toDataURL not working on android browsers

  • Android 4.2: ho scritto questo codice c.toDataURL ("image/jpeg"); ma ho preso questi dati: image/png; base64

Android 4.x supporta canvas.toDataURL; tuttavia, non supporta il formato jpeg (se chiedi un jpeg, restituirà un png).

Maggiori dettagli: https://github.com/scottjehl/Device-Bugs/issues/33

+0

Grazie mille per il tuo commento, Luis. mi aiuta molto. – amorbytes

+0

chrome su Android 4.1+ sembra dare "image/jpeg" se lo chiedi –

2

Solo image/png è supportato dai vecchi browser (WebKits) e questo è l'unico codec che puoi contare per essere presente. img/jpeg viene aggiunto in seguito e non è ancora supportato da molti browser.

Per Android 2.3: prova se riesci a farlo nel browser vanilla. Se funziona lì, si tratta di un problema di PhoneGap e deve essere segnalato agli autori.

+0

Grazie mille per il vostro aggiornamento. potresti aiutarmi per favore su questo. Attualmente sto provando a ridurre la dimensione dell'immagine usando la tela. quindi quello che sto facendo è caricare l'immagine su tela e ridisegnarla in dimensioni 300x300 e quindi recuperare la stringa base64 del canvas. e la tela è anche 310x310 pixel. ma quando la stringa base64 generata è più grande, la stringa base64 dell'immagine origionale generata utilizzando il dispositivo Android. – amorbytes

+0

Sarebbe meglio se aprissi un'altra domanda con queste informazioni specifiche, in modo che il contesto di discussione rimanga pulito e ricercabile –

+0

Capisco il tuo punto. Farò lo stesso. – amorbytes

Problemi correlati