Signature_pad: mengubah warna latar belakang dengan cepat

Dibuat pada 19 Nov 2015  ·  4Komentar  ·  Sumber: szimek/signature_pad

Hai,

pada inisialisasi saya memiliki papan tanda tangan (kanvas) diatur ke warna tertentu tetapi saya ingin menyimpannya pada latar belakang transparan atau putih. Saya sudah menggunakan fungsi removeBlanks prototipe tertaut untuk menangkap hanya tanda tangan tetapi bg masih rgb (255.243.204) saya mencoba mengubahnya melalui
signaturePad.backgroundColor = rgb(255, 255, 255); tapi sepertinya saat menandatangani stroke, gambar base64 sudah terdaftar.

Ada ide?

Komentar yang paling membantu

Mungkin hanya bertukar warna sebelum mengirimnya ke server akan berhasil? Anda bisa mendapatkan data gambar mentah menggunakan CanvasContext2D#getImageData() , mengulangi setiap piksel dan menukar warna latar belakang yang terlihat (integer 8 bit) ke yang diinginkan. Simpan data gambar yang dimodifikasi ke kanvas di luar layar dan baca kembali menggunakan Canvas#toDataURL() . Mungkin berhasil :)

OMONG-OMONG. Warna latar belakang diterapkan saat kanvas dihapus, jadi hanya saat inisialisasi atau saat Anda memanggil SignaturePad#clear() secara eksplisit.

Semua 4 komentar

Mungkin hanya bertukar warna sebelum mengirimnya ke server akan berhasil? Anda bisa mendapatkan data gambar mentah menggunakan CanvasContext2D#getImageData() , mengulangi setiap piksel dan menukar warna latar belakang yang terlihat (integer 8 bit) ke yang diinginkan. Simpan data gambar yang dimodifikasi ke kanvas di luar layar dan baca kembali menggunakan Canvas#toDataURL() . Mungkin berhasil :)

OMONG-OMONG. Warna latar belakang diterapkan saat kanvas dihapus, jadi hanya saat inisialisasi atau saat Anda memanggil SignaturePad#clear() secara eksplisit.

@szimek terima kasih atas tanggapannya. Saya juga ingin mendukung fungsi removeBlanks untuk ini. Saya hanya perlu mencari cara untuk mengetahui apakah itu piksel latar belakang vs piksel tanda tangan.

Juga apakah ada cara untuk mendapatkan representasi array json dari tanda tangan?
yaitu {lx : 20, ly : 34, mx : 20, my : 34}

Sayangnya tidak untuk saat ini. Hanya 4 poin terakhir yang disimpan dalam memori, jadi tidak ada cara untuk mengakses semua poin. Ini mungkin berubah di masa depan, tetapi ada beberapa masalah lain (terutama terkait dengan layar retina/non-retina) dengan prioritas lebih tinggi.

Anda dapat dengan mudah mengubah perpustakaan untuk menyimpan semua poin jika Anda benar-benar membutuhkan data ini.

@khawye Jika Anda memiliki pertanyaan lagi, silakan buka kembali masalah ini.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

chenks picture chenks  ·  7Komentar

c2ofh picture c2ofh  ·  7Komentar

Sparticuz picture Sparticuz  ·  7Komentar

50l3r picture 50l3r  ·  3Komentar

cristhianDt picture cristhianDt  ·  7Komentar