Signature_pad: Ändern der Hintergrundfarbe im laufenden Betrieb

Erstellt am 19. Nov. 2015  ·  4Kommentare  ·  Quelle: szimek/signature_pad

Hey,

Beim Initialisieren habe ich das Signierpad (Leinwand) auf eine bestimmte Farbe eingestellt, aber ich möchte es auf einem transparenten oder weißen Hintergrund speichern. Ich habe bereits die verlinkte Prototyp-RemoveBlanks-Funktion verwendet, um nur die Signatur zu erfassen, aber die bg immer noch rgb (255,243,204), über die ich versuche, sie zu ändern
signaturePad.backgroundColor = rgb(255, 255, 255); aber es scheint, als wäre das base64-Image beim Signieren bereits registriert worden.

Irgendwelche Ideen?

Hilfreichster Kommentar

Vielleicht würde es funktionieren, einfach die Farben auszutauschen, bevor es an den Server gesendet wird? Sie könnten rohe Bilddaten mit CanvasContext2D#getImageData() erhalten, über jedes Pixel iterieren und die sichtbare Hintergrundfarbe (8-Bit-Integer) gegen die gewünschte austauschen. Speichern Sie geänderte Bilddaten auf einer Offscreen-Leinwand und lesen Sie sie mit Canvas#toDataURL() zurück. Könnte funktionieren :)

Übrigens. Die Hintergrundfarbe wird angewendet, wenn die Leinwand gelöscht wird, also nur beim Initialisieren oder wenn Sie SignaturePad#clear() explizit aufrufen.

Alle 4 Kommentare

Vielleicht würde es funktionieren, einfach die Farben auszutauschen, bevor es an den Server gesendet wird? Sie könnten rohe Bilddaten mit CanvasContext2D#getImageData() erhalten, über jedes Pixel iterieren und die sichtbare Hintergrundfarbe (8-Bit-Integer) gegen die gewünschte austauschen. Speichern Sie geänderte Bilddaten auf einer Offscreen-Leinwand und lesen Sie sie mit Canvas#toDataURL() zurück. Könnte funktionieren :)

Übrigens. Die Hintergrundfarbe wird angewendet, wenn die Leinwand gelöscht wird, also nur beim Initialisieren oder wenn Sie SignaturePad#clear() explizit aufrufen.

@szimek Danke für die Antwort. Ich wollte auch dafür auf die Funktion removeBlanks zurückgreifen. Ich muss nur herausfinden, ob es sich um ein Hintergrundpixel oder ein Signaturpixel handelt.

Gibt es auch eine Möglichkeit, die json-Array-Darstellung der Signatur zu erhalten
dh {lx: 20, ly: 34, mx: 20, my: 34}

Momentan leider nicht. Nur die letzten 4 Punkte werden gespeichert, daher gibt es keine Möglichkeit, auf alle Punkte zuzugreifen. Es könnte sich in Zukunft ändern, aber es gibt einige andere Probleme (hauptsächlich im Zusammenhang mit Retina-/Nicht-Retina-Bildschirmen) mit höherer Priorität.

Sie können die Bibliothek jedoch ganz einfach ändern, um alle Punkte zu speichern, wenn Sie diese Daten wirklich benötigen.

@khawye Wenn Sie weitere Fragen haben, öffnen Sie dieses Problem bitte erneut.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

rmmackay picture rmmackay  ·  7Kommentare

auam88 picture auam88  ·  4Kommentare

MarcGodard picture MarcGodard  ·  8Kommentare

chitgoks picture chitgoks  ·  5Kommentare

c2ofh picture c2ofh  ·  7Kommentare