يا،
عند التهيئة لديّ لوحة التوقيع (قماشية) مضبوطة على لون معين ولكني أرغب في حفظها على خلفية شفافة أو بيضاء. لقد استخدمت بالفعل وظيفة removeBlanks النموذج الأولي المرتبط لالتقاط التوقيع فقط ولكن bg لا يزال rgb (255،243،204) أحاول تغييره عبر
signaturePad.backgroundColor = rgb (255 ، 255 ، 255) ؛ ولكن يبدو أنه عند توقيع الضربة ، تم تسجيل صورة base64 بالفعل.
أيه أفكار؟
ربما ستعمل مبادلة الألوان ببساطة قبل إرسالها إلى الخادم؟ يمكنك الحصول على بيانات الصورة الأولية باستخدام CanvasContext2D#getImageData()
، والتكرار على كل بكسل وتبديل لون الخلفية المرئي (عدد صحيح 8 بت) إلى اللون المطلوب. احفظ بيانات الصورة المعدلة في لوحة خارج الشاشة واقرأها مرة أخرى باستخدام Canvas#toDataURL()
. قد تعمل :)
بالمناسبة. يتم تطبيق لون الخلفية عند مسح لوحة الرسم ، لذلك فقط عند التهيئة أو عند استدعاء SignaturePad#clear()
بشكل صريح.
szimek شكرا على الرد. كنت أتطلع إلى عودة وظيفة removeBlanks لهذا أيضًا. لا بد لي فقط من معرفة كيفية معرفة ما إذا كان بكسل الخلفية أم بكسل التوقيع.
هناك أيضًا طريقة للحصول على تمثيل مصفوفة json للتوقيع
على سبيل المثال {lx: 20، ly: 34، mx: 20، my: 34}
لسوء الحظ ليس في الوقت الحالي. يتم الاحتفاظ بالنقاط الأربع الأخيرة فقط في الذاكرة ، لذلك لا توجد طريقة للوصول إلى جميع النقاط. قد يتغير في المستقبل ، ولكن هناك بعض المشكلات الأخرى (تتعلق بشكل أساسي بشاشات الشبكية / غير الشبكية) ذات الأولوية الأعلى.
يمكنك بسهولة تغيير المكتبة لتخزين جميع النقاط إذا كنت حقًا بحاجة إلى هذه البيانات.
khawye إذا كان لديك أي أسئلة أخرى ، يرجى إعادة فتح هذه المشكلة.
التعليق الأكثر فائدة
ربما ستعمل مبادلة الألوان ببساطة قبل إرسالها إلى الخادم؟ يمكنك الحصول على بيانات الصورة الأولية باستخدام
CanvasContext2D#getImageData()
، والتكرار على كل بكسل وتبديل لون الخلفية المرئي (عدد صحيح 8 بت) إلى اللون المطلوب. احفظ بيانات الصورة المعدلة في لوحة خارج الشاشة واقرأها مرة أخرى باستخدامCanvas#toDataURL()
. قد تعمل :)بالمناسبة. يتم تطبيق لون الخلفية عند مسح لوحة الرسم ، لذلك فقط عند التهيئة أو عند استدعاء
SignaturePad#clear()
بشكل صريح.