تنسيق PBM(5)

الاسم
pbm - تنسيق الصورة ثنائية المستوى لـ Netpbm

الوصف

هذا البرنامج جزء من Netpbm(1) .

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

الاسم "PBM" هو اختصار مشتق من "Portable Bit Map" (خريطة البت المحمولة).

هذا ليس تنسيقًا يُستخدم عادةً لتخزين ملف أو إرساله إلى شخص ما - فهو مكلف جدًا وغير معبر بما يكفي لذلك. إنه مجرد تنسيق وسيط. في أنقى استخداماته، يعيش فقط في أنبوب بين برنامجين آخرين.

التخطيط

تعريف التنسيق كما يلي.

يتكون ملف PBM من سلسلة من صورة PBM واحدة أو أكثر. لا توجد بيانات أو محددات أو حشو قبل الصور أو بعدها أو بينها.

تتكون كل صورة PBM مما يلي:

•   'رقم سحري' لتحديد نوع الملف. الرقم السحري لصورة pbm هو الحرفان 'P4'.

•   مساحة بيضاء (فراغات، وعلامات جدولة، ومحارف CR، ومحارف LF).

•   عرض الصورة بالبكسل، منسق كأحرف ASCII بالنظام العشري.

•   مساحة بيضاء.

•   ارتفاع الصورة بالبكسل، مرة أخرى بالنظام العشري ASCII.

•   محرف مسافة بيضاء واحد (عادةً سطر جديد).

•   شبكة من صفوف بارتفاع Height، بالترتيب من الأعلى إلى الأسفل. كل صف هو عرض Width بت، معبأة 8 بت لكل بايت، مع بتات غير مهمة لملء آخر بايت في الصف. يمثل كل بت بكسل: 1 أسود، 0 أبيض. ترتيب البكسلات من اليسار إلى اليمين. ترتيب تخزينها داخل كل بايت ملف هو من البت الأكثر أهمية إلى البت الأقل أهمية. ترتيب بايتات الملف من بداية الملف نحو نهايته.

    صف الصورة أفقي. العمود عمودي. البكسلات في الصورة مربعة ومتلاصقة.

•   قبل حرف المسافة الذي يفصل الصورة النقطية، تُعتبر أي أحرف من '#' وحتى حرف إرجاع السطر أو سطر جديد تعليقًا ويتم تجاهلها. لاحظ أن هذا غير شائع، لأن التعليق قد يكون في منتصف ما يُعتبر رمزًا.لاحظ أيضًا أن هذا يعني أنه إذا كان لديك تعليق قبل الصورة النقطية مباشرةً، فإن سطرًا جديدًا في نهاية التعليق لا يكفي لفصل الصورة النقطية.

جميع المحارف المشار إليها هنا مشفرة بترميز ASCII. تشير كلمة 'newline' إلى المحرف المعروف في ASCII باسم Line Feed أو LF. محرف 'white space' هو المسافة، أو CR، أو LF، أو TAB، أو VT، أو FF (أي ما تسميه دالة isspace()‎ في معيار ANSI C مسافة بيضاء).

  PBM العادي

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

تولد برامج Netpbm تنسيق Raw PBM بدلاً من Plain PBM بشكل مبدئي، لكن الخيار الشائع index.html#commonoptions -plain يختار Plain PBM.

الفرق هو:

•   توجد صورة واحدة بالضبط في الملف.

•   'الرقم السحري' هو 'P1' بدلاً من 'P4'.

•   كل بكسل في المسح النقطي يُمثل ببايت يحتوي على ASCII '1' أو '0'، ليمثل الأسود والأبيض على التوالي. لا توجد بتات حشو في نهاية الصف.

•   يُتجاهل الفراغ الأبيض في قسم المسح النقطي.

•   يمكنك وضع أي بيانات عشوائية تريدها بعد المسح النقطي، إذا بدأت بحرف فراغ أبيض.

•   لا ينبغي أن يتجاوز طول أي سطر 70 محرفًا. هذا مثال لصورة صغيرة بتنسيق PBM العادي.
    P1
    # feep.pbm
    24 7
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0
    0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0
    0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0
    0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0
    0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

يوجد محرف سطر جديد في نهاية كل من هذه الأسطر.

يمكنك توليد تنسيق PBM العادي من تنسيق PBM العادي (الصورة الأولى في الملف فقط) باستخدام برنامج pnmtoplainpnm.

يجب أن تكون البرامج التي تقرأ هذا التنسيق متساهلة قدر الإمكان، مقبولة لأي شيء يشبه عن بعد خريطة بت.

نوع وسائط الإنترنت

لم يُسجل أي نوع وسائط إنترنت (المعروف بنوع MIME، نوع المحتوى) لـ PBM لدى IANA، لكن القيمة image/x-portable-bitmap تقليدية.

لاحظ أن نوع وسائط الإنترنت PNM من نوع image/x-portable-anymap ينطبق أيضًا.

اسم الملف

لا توجد متطلبات على اسم ملف PBM، لكن التقليد هو استخدام اللاحقة '.pbm'. 'pnm' تقليدية أيضًا، للحالات التي لا يكون فيها التمييز بين التنسيقات الفرعية الخاصة لـ PNM مناسبًا.

التوافقية

قبل يوليو 2000، كان يمكن أن يكون هناك صورة واحدة على الأكثر في ملف PBM. ونتيجة لذلك، تتجاهل معظم أدوات معالجة ملفات PBM (ولا تقرأ) أي بيانات بعد الصورة الأولى.

انظر أيضًا
libnetpbm(1) , pnm(1) , pgm(1) , ppm(1) , pam(1) , برامج تعالج PBM(1)

مصدر المستند
أُنشئت صفحة الدليل هذه بواسطة أداة Netpbm المسماة 'makeman' من مصدر HTML. التوثيق الرئيسي موجود في

    http://netpbm.sourceforge.net/doc/pbm.html

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.