كتيبات سطر الأوامر

Man » دليل pam عبر الإنترنت - وثائق تفصيلية عبر الإنترنت لصفحة دليل pam

🌍
pam - تنسيق الخريطة النقطية ثنائية الأبعاد الشائع لـ Netpbm

عام

تنسيق صورة PAM هو تنسيق خريطة ثنائية الأبعاد منخفضة المستوى.

تم تصميمه ليتم استخدامه لأي من أنواع الرسومات العديدة، ولكنه يمكن نظريًا أن يُستخدم لأي نوع من البيانات التي يتم ترتيبها كمصفوفة مستطيلة ثنائية الأبعاد. في الواقع، من منظور آخر، يمكن اعتباره تنسيقًا للبيانات التي يتم ترتيبها كمصفوفة ثلاثية الأبعاد.

اسم "PAM" هو اختصار مشتق من "خريطة عشوائية قابلة للنقل". يصبح هذا الاشتقاق أكثر منطقية إذا نظرنا إليه في سياق أسماء تنسيقات Netpbm الأخرى: PBM و PGM و PPM.

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

تصف صورة PAM شبكة ثنائية الأبعاد من الصفوف. يتم ترتيب الصفوف في صفوف وأعمدة. عرض الصورة هو عدد الأعمدة. ارتفاع الصورة هو عدد الصفوف. جميع الصفوف لها نفس العرض وجميع الأعمدة لها نفس الارتفاع. يمكن أن يكون للصفوف أي درجة، ولكن يجب أن يكون لكل صفوف نفس الدرجة. درجة الصفوف تسمى عمق الصورة. كل عضو في صف يسمى عينة. العينة عبارة عن عدد صحيح غير سالب يمثل موقعًا على مقياس يبدأ من الصفر وينتهي بقيمة قصوى تسمى maxval. تكون قيمة maxval هي نفسها لكل عينة في الصورة. تسمى المصفوفة ثنائية الأبعاد لجميع العينات N من كل صف الطائرة N أو القناة N للصورة.

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

الكون المحير لتنسيقات Netpbm

من السهل الخلط بين العلاقة بين تنسيق PAM وتنسيقات PBM و PGM و PPM و PNM. إليك بعض التوضيحات:

"PNM" ليس تنسيقًا بالفعل. إنه اختصار لتنسيقات PBM و PGM و PPM بشكل جماعي. إنه أيضًا اسم لمجموعة من وظائف المكتبة التي يمكن لكل منها التعامل مع جميع التنسيقات الثلاثة.

في الواقع، "PAM" هو تنسيق رابع. ولكنه عام جدًا لدرجة أنه يمكنك تمثيل نفس المعلومات في صورة PAM كما يمكنك تمثيلها في صورة PBM أو PGM أو PPM. وفي الواقع، يمكن للبرنامج المصمم لقراءة PBM أو PGM أو PPM، والذي يستخدم إصدارًا حديثًا من مكتبة Netpbm، أن يقرأ صورة PAM مكافئة دون أي مشكلة، ولن يعرف البرنامج أي فرق.

لإضافة المزيد من التعقيد، هناك مجموعة من الدوال المكتبية تسمى "دوال pam" التي تقرأ وتكتب تنسيق PAM، ولكنها أيضًا تقرأ وتكتب تنسيقات PBM و PGM و PPM. إنها تفعل ذلك لأن التنسيقات الأخيرة أقدم وأكثر شيوعًا، لذلك حتى البرنامج الجديد يجب أن يعمل معها. إن وجود المكتبة التي تتعامل مع جميع التنسيقات يجعل من السهل كتابة برامج تستخدم تنسيق PAM الأحدث.

التخطيط

إحدى الطرق المريحة لقراءة وكتابة تنسيق PAM بدقة هي استخدام مكتبة C الفرعية libnetpbm(1).

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

تتكون كل صورة PAM من رأس يتبعه مباشرةً نمط نقطي (راستر).

فيما يلي مثال على الرأس:

P7
WIDTH 227
HEIGHT 149
DEPTH 3
MAXVAL 255
TUPLTYPE RGB
ENDHDR

يبدأ الرأس بالأحرف ASCII "P7" متبوعة بسطر جديد. هذا هو الرقم السحري.

ملاحظة: تبدأ صور xv المصغرة أيضًا بالرقم السحري "P7". (كان هذا و PAM توسيعات مستقلة لتنسيقات Netpbm). (يجعل بقية التنسيق من السهل التمييز بين PAM وهذا التنسيق الآخر).

يستمر الرأس بعد ذلك بعدد عشوائي من أسطُر النص ASCII. ينتهي كل سطر ويُحدَّد بحرف سطر جديد.

يتكون كل سطر من الرأس من صفر أو أكثر من الرموز المميزة المفصولة بمسافات، أو يبدأ بـ "#". إذا بدأ بـ "#"، فهو تعليق ولا ينطبق بقية هذا التحديد عليه.

السطر الرأسي الذي يحتوي على صفر من الرموز المميزة صالح ولكنه ليس له معنى.

يتم تحديد نوع السطر الرأسي بواسطة الرمز المميز الأول، وهو 8 أحرف أو أقل:

ENDHDR هذا هو السطر الأخير في الرأس. يجب أن يحتوي الرأس على سطر واحد فقط من هذا النوع.

HEIGHT الرمز المميز الثاني هو رقم عشري يمثل ارتفاع الصورة (عدد الصفوف). يجب أن يحتوي الرأس على سطر واحد فقط من هذا النوع.

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

DEPTH الرمز المميز الثاني هو رقم عشري يمثل عمق الصورة (عدد المستويات أو القنوات). يجب أن يحتوي الرأس على سطر واحد فقط من هذا النوع.

MAXVAL الرمز المميز الثاني هو رقم عشري يمثل قيمة MAXVAL للصورة. يجب أن يحتوي الرأس على سطر واحد فقط من هذا النوع.

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

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

تتكون الصورة النقطية من كل صف من الصورة، بالترتيب من الأعلى إلى الأسفل، متصلة بدون أي فاصل من أي نوع بينها، أو قبلها، أو بعدها.

يتكون كل صف من كل مجموعة في الصف، بالترتيب من اليسار إلى اليمين، متصلة بدون أي فاصل من أي نوع بينها، أو قبلها، أو بعدها.

تتكون كل مجموعة من كل عينة في المجموعة، بالترتيب، متصلة بدون أي فاصل من أي نوع بينها، أو قبلها، أو بعدها.

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

الحرف المشار إليه باسم "سطر جديد" هنا هو الحرف المعروف في ASCII باسم "تغذية السطر" أو LF.

القيود

يجب أن يكون الارتفاع والعرض والعمق والقيمة القصوى 1 على الأقل.

لا يوجد حد أقصى محدد للارتفاع والعرض والعمق، ولكن معالجات الصور ومولداتها عادةً ما يكون لها قيودها الخاصة.

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

أنواع المجموعات المعرفة

يتم تحديد بعض أنواع المجموعات في هذه المواصفات لتحديد التنسيقات الفرعية الرسمية لتنسيق PAM لتطبيقات أكثر شيوعًا. يمكن لمستخدمي التنسيق أيضًا تحديد أنواع مجموعات خاصة بهم، وبالتالي تنسيقات فرعية خاصة بهم.

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

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


يُستخدم PAM للصور المرئية

يُستخدم PAM بشكل شائع لتمثيل الصور المرئية مثل تلك التي يتم تمثيلها عادةً بالصور في تنسيقات PBM و PGM و PPM القديمة والأكثر تحديدًا.

أبيض وأسود

الصورة بالأبيض والأسود، مثل تلك التي يمكن تمثيلها بتنسيق PBM، لها نوع مجموعة بيانات "BLACKANDWHITE". تتميز صورة PAM هذه بعمق يبلغ 1 و maxval يبلغ 1، حيث يمثل العينة الموجودة في كل مجموعة بيانات القيمة 0 لتمثيل بكسل أسود والقيمة 1 لتمثيل بكسل أبيض. تمتلك maxval و height و width وترتيب مجموعات البيانات في الصورة العلاقة الواضحة مع تلك الموجودة في صورة PBM المكافئة.

لاحظ أنه في تنسيق PBM، تعني قيمة العينة صفر اللون الأبيض، ولكن في PAM، تعني القيمة صفر اللون الأسود.

تدرج الرمادي

الصورة ذات تدرج الرمادي، مثل تلك التي يمكن تمثيلها بتنسيق PGM، لها نوع مجموعة بيانات "GRAYSCALE". تتميز صورة PAM هذه بعمق يبلغ 1. تمتلك maxval و height و width ومجموعات البيانات العلاقة الواضحة مع تلك الموجودة في صورة PGM المكافئة.

لون

الصورة الملونة، مثل تلك التي يمكن تمثيلها بتنسيق PPM، لها نوع مجموعة بيانات "RGB". تتميز صورة PAM هذه بعمق يبلغ 3. تمتلك maxval و height و width ومجموعات البيانات العلاقة الواضحة مع تلك الموجودة في صورة PPM المكافئة. يمثل المستوى الأول اللون الأحمر، والمستوى الثاني اللون الأخضر، والمستوى الثالث اللون الأزرق.

شفاف

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

في هذا النوع من الصور، يمثل لون البكسل في الواقع مزيجًا من لون المقدمة المحدد ولون الخلفية الذي سيتم تحديده لاحقًا.

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

على سبيل المثال، في صورة GRAYSCALE_ALPHA، افترض أن المستوى 0 يشير إلى لون رمادي يمثل 60٪ من اللون الأبيض والمستوى 1 يشير إلى الشفافية بنسبة 25٪. لون المقدمة هو اللون الرمادي بنسبة 60٪، و 25٪ منها يساهم في اللون النهائي للبكسل. يأتي باقي النسبة (75٪) من لون خلفية. لنفترض أيضًا أن لون خلفية البكسل هو اللون الأبيض الكامل. إذن، لون البكسل هو 90٪ من اللون الأبيض: 25٪ من لون المقدمة البالغ 60٪، بالإضافة إلى 75٪ من لون الخلفية البالغ 100٪.

قيمة العينة هي نسبة الشفافية الموصوفة، كنسبة من maxval. لاحظ أنه ليس مصححًا جاما مثل عينات لون المقدمة.

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

لم يتم تسجيل أي نوع وسائط إنترنت (المعروف أيضًا باسم نوع MIME أو نوع المحتوى) لـ PAM لدى IANA، ولكن القيمة غير الرسمية image/x-portable-arbitrarymap يتم تعيينها من خلال هذا التحديد، لتكون متوافقة مع القيم التقليدية لتنسيقات Netpbm القديمة.


اسم الملف

اللاحقة التقليدية لاسم ملف PAM هي ".pam". ولكن هذا ليس مطلوبًا.

انظر أيضًا

Netpbm(1)، pbm(1)، pgm(1)، ppm(1)، pnm(1)، libnetpbm(1)

مصدر الوثيقة

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

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