javascript Canvas.toDataURL() restituisce un'immagine parzialmente danneggiata




todataurl(' image png ') (2)

Abbiamo un'applicazione web che restituisce (molto a intermittenza) un URL di dati immagine PNG parzialmente danneggiato. L'immagine ha una grande sezione nera che copre alcune delle immagini ma non tutte. Queste immagini sono le firme dei clienti.
Per esempio:

Stiamo usando il componente del signature pad da questo . L'URL dell'immagine viene restituito utilizzando la routine getSignatureImage() .

L'unica cosa che ho visto dai log di accesso sembra mostrare le richieste interessate provenienti dai dispositivi "Samsung Galaxy Tab", ma utilizzando Chrome 59. Tuttavia, altre richieste dagli stessi dispositivi funzionano correttamente.

Qualsiasi aiuto apprezzato.


Penso che non sia un problema di memoria. Quando l'immagine consuma troppa memoria, un'immagine sarà semplicemente nera (pixel vuoti rgb (0,0,0) ). Prova a ottenere il blob da canvas - canvas.toBlob (function (blob) {}). Probabilmente la tua immagine non è stata caricata o disegnata ancora. Prova a mettere window.setTimeout da qualche parte prima di ottenere i dati dell'immagine (base64 o blob)


Ora abbiamo confermato che il problema dipendeva dal dispositivo.

Gli utenti finali interessati sono passati da dispositivi Samsung Galaxy Tab 4 recenti a dispositivi Tab S2 . Il problema non si verifica più.

Sembra che sia stata una limitazione della lunghezza delle stringhe sui vecchi dispositivi.

Grazie per l'aiuto!







canvas