سؤال

لقد قمت بتنقيط الخريطة بدقة مختلفة، والتي تتكون من 15K/60K/240K من الصور بحجم 256×256، ولدي تطبيق .NET Compact Framework الذي يمكنه عرض الخريطة.لكن نسخ 300 ألف ملف إلى بطاقة SD يستغرق وقتًا طويلاً، ما يقرب من 35 إلى 60 ساعة (لقد قمت بنسخ 15 ألفًا فقط واستغرق الأمر ما يقرب من 2 إلى 2.5 ساعة)، وأخشى أن يؤدي ذلك إلى تدمير نظام الملفات FAT16 (لا تدعم الأجهزة FAT32، لذا لا أستطيع تحويل Fat16 إلى Fat32) أو بعد النسخ، سيعمل كل شيء ببطء شديد.

يتم تخزين كافة الصور مثل هذا:/mapdata/res{resolution}/x{x_coord}/y{y_coord}.png

هل يمكن لأي قاعدة بيانات قابلة للتضمين مساعدتي؟أم هل يجب أن أقوم بتجميع الصور في ملف مضغوط مثل /storage/res1/x12.zip مع أرشفة جميع ملفات y*.png؟أو يجب علي فقط إنشاء صورة ISO مع كل هذه الصور ونسخ ISO إلى SD بايت إلى بايت؟

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

المحلول

يقتصر FAT16 على 65.535 مجموعة، ويلزم وجود مجموعة واحدة على الأقل لكل ملف، مما يستبعد استخدام الملفات الثابتة فقط.

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

ربما شيء على غرار:

  • نوع من الرأس، حتى تعرف أنه ملفك.
  • صف يحتوي على الإزاحة من بداية الملف إلى التجانب لمستوى التكبير "صفر" وطوله بالبايت
  • أربعة صفوف للإزاحات والأطوال للبلاطات لمستوى التكبير "1"
  • ...
  • 4^(n) صفوف للإزاحات والأطوال للبلاطات عند مستوى التكبير/التصغير "n"
  • بيانات البلاط الفعلية.

سيكون من السهل نسبيًا البحث عن الإزاحات الخاصة بإطار متجانب معين، وتجاوز الدفق للقيام "بالشيء الصحيح" عند الإبلاغ عن نهاية الدفق - يمكنك حتى استخدام نفس الإزاحة للصور "بدون تجانب" إذا كنت تقوم بالتشفير منطقة لا تتناسب تمامًا مع المربع (مثل بريطانيا العظمى)

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