سؤال

في طلبي، يمكن للمستخدم إنشاء كائنات متعددة (إذن ما يسمى الرسومات) لكل منها يحتوي على smoreinkcanvas، مشابه جدا مع Photopad (تطبيق Photo Paint) في SDKSamples (المقدمة من MS Surface SP1 SDK). ما هي أفضل طريقة لحفظ محتوى Inkcanvas (كائن الرسم) بالنظر إلى حقيقة أنه قد يكون هناك عشرات أو حتى مئات منهم.

بعد بعض الأبحاث، ظهر خيار واحد: تحويله إلى صورة، jpg أو PNG، ولكن هذه الطريقة لا يبدو أن المنظمة البحرية الدولية القابلة للتحجيم.

هل سيكون من الممكن تخزين النقاط في قاعدة بيانات (يفضل أن يكون sqlite)؟

الهدف هو أن تكون قادرا على استعادة الرسومات (محتويات Inkcanvas) لمزيد من التحرير عند التحميل.

هل كانت مفيدة؟

المحلول 2

هناك بالفعل تنسيق يستخدم Microsoft لحفظ السكتات الدماغية، وهو ASF - يقف على تنسيق Ink Serialized يحفظ مجموعة السكتات الدماغية في ملف .isf.

ومع ذلك في هذا مثال يتم حفظ كل رسم كل رسم في منفصلة(ولكن الحجم الصغير). فرض ملف يمكن تحميله بسهولة مرة أخرى لمزيد من التحرير أو حتى تحويل (التصدير) إلى صورة نقطية.

لذلك سوف تكون الطريقة الجيدة هي توفير كل رسم في الملفات (على الرغم من أن هذا أكثر تكلفة بعض الشيء، والحق في الوقت، من مجرد تخزينها في SQLite DB) وحفظ مسار كل جنبا إلى جنب مع معرف فيقاعدة البيانات لتحديد كل جلسة. أي اقتراح لمزيد من تحسين هذه الطريقة من وجهة نظر التوسع؟

نصائح أخرى

الحفظ على الصورة ليست قابلة للحياة حقا على ما يبدو وكأنه تريد أن تفعل ذلك لأن استعادة خطوط المتجهات من صورة نقطية أصعب بكثير ويحتمل أن تكون خائفة من ناقل تحويل نقطي، بالإضافة إلى عدم كفاءة للغاية منوجهة نظر كثافة البيانات.

يمكنك كتابة بعض الكود لحفظ واستعادة مجموعة الأسطر التي تخزينها في خاصية السكتات الدماغية.سيتيح لك ذلك تقليل حجم بياناتك إلى الحد الأدنى والتخزين في قاعدة البيانات.تحتوي كل ضربة على بعض البيانات حول ما يشبه الخط ومجموعة من النقاط التي تشكل الخط.من السهل إلى حد ما استخراج واستعادة البيانات إلى inkcanvas أخرى عند إعادة التحميل.

قد تكون قادرا أيضا على استخدام xamlwiter / xamlreader لتسلسل Inkcanvas بأكمله إلى XML، لكنك ستحتاج إلى أن تكون قادرا على وضع مثيل التحمل الجديد في UI وتأكد من عدم وجود أي مضاعفات تسمية أو موارد فيXAML الخاص بك الذي يميل إلى أن يسبب أخطاء بهذه الطريقة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top