Scroll to navigation

Pamundice User Manual(1) General Commands Manual Pamundice User Manual(1)

الاسم

pamundice - دمج شبكة من الصور (البلاطات) في صورة واحدة

مثال

     $ pamdice myimage.ppm -outstem=myimage_part -width=1000 -height=1000     $ pamundice myimage_part_%1d_%1a.ppm -across=10 -down=8 >myimage.ppm
    $ pamundice myimage_part_%2a -across=13 -hoverlap=9

See pamdice لمزيد من الأمثلة.

موجز

pamundice

{ [-across=n]

[-down=n] , -indexfile=pamfilename }

[-hoverlap=pixels]

[-voverlap=pixels]

[-verbose]

{input_filename_pattern, -listfile=textfilename}

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

الوصف

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

يقرأ pamundice مجموعة من صور Netpbm كمدخلات ويدمجها كشبكة من البلاطات في صورة مخرجة واحدة من نفس النوع على المخرج المعياري.

يمكنك اختياريًا جعل القطع متداخلة.

لا يجب أن تكون القطع متميزة؛ يمكنك جعل صورة إدخال واحدة تظهر في أماكن متعددة في شبكة المخرجات.

يمكن أن تكون الصور إما في ملفات تشير أسماؤها إلى مكانها في المخرج (مثل 'myimage_part_03_04' قد تكون الصورة للصف 3، العمود 4 - انظر وسيط input_filename_pattern) أو مدرجة في ملف، مع خيار -listfile.

يجب أن تكون جميع صور الإدخال بنفس التنسيق (PAM، PPM، إلخ) ونفس القيمة القصوى، وبالنسبة لـ PAM يجب أن يكون لها نفس العمق ونفس نوع الصفوف. يجب أن تكون جميع الصور في رتبة (صف أفقي من البلاطات) بنفس الارتفاع. يجب أن تكون جميع الصور في ملف (عمود رأسي من البلاطات) بنفس العرض. لكن ليس مطلوبًا أن يكون لكل رتبة نفس الارتفاع أو لكل ملف نفس العرض.

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

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

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

بديل لضم الصور في اتجاه واحد (أي رتبة واحدة أو ملف واحد) هو pamcat. يوفر pamcat طرقًا بديلة لتحديد صور الإدخال: يمكنك توفيرها تسلسليًا على الإدخال المعياري أو سردها بالاسم كوسائط سطر أوامر.

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

لإنشاء صورة لنفس البلاطة مكررة في شبكة، هذا هو pnmtile.

يقوم pnmindex بشيء مشابه لـ pamundice: فهو يجمع مجموعة من الصور الصغيرة في شبكة في صورة كبيرة. لكن غرضه هو إنتاج صورة فهرسة لصور الإدخال. لذلك يترك مسافة بينها ولديه تسميات لها، على سبيل المثال.

المعطيات

ما لم تستخدم خيار -listfile، يوجد وسيط واحد غير خياري، وهو إلزامي: input_filename_pattern. يخبر هذا pamundice بالملفات التي تحتوي على بلاطات الإدخال.

يقرأ pamundice صور الإدخال من ملفات مسماة بنمط يشير إلى مواقعها في الصورة المدمجة. على سبيل المثال، tile_00_05.ppm قد تكون البلاطة السادسة في الرتبة الأولى، بينما tile_04_01 هي البلاطة الثانية في الرتبة الخامسة.

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

لا يمكنك توفير أي من البيانات على الإدخال المعياري، ويجب أن تكون الملفات من النوع الذي يمكن لـ pamundice إغلاقه وإعادة فتحه وقراءة نفس الصورة مرة ثانية (مثل ملف عادي جيد؛ الأنبوب المسمى ربما لا).

input_filename_pattern هو نمط على غرار printf. (انظر الروتين الفرعي printf لمكتبة C القياسية). للمثال أعلاه، سيكون tile_%2d_%2a.ppm. محددات التحويل الممكنة الوحيدة هي:

"down": رقم الرتبة (الصف)، بدءًا من 0.

"across": رقم الملف (العمود)، بدءًا من 0.

%
حرف النسبة المئوية (%).

الرقم بين % ومحدد التحويل هو الدقة وهو مطلوب. يحدد عدد أحرف اسم الملف الموصوفة بواسطة ذلك التحويل. يتم ملء رقم الرتبة أو الملف بالأصفار البادئة حسب الحاجة.

لذا فإن المثال tile_%2d_%2a.ppm يعني للحصول على اسم الملف الذي يحتوي على البلاطة عند الرتبة 0، الملف 5، تقوم بـ:

  • استبدل "%2d" برقم الرتبة، كرقم عشري مكون من رقمين: "00"

  • استبدل "%2a" برقم الملف، كرقم عشري مكون من رقمين: "05"

لاحظ أن هذا النمط المعين يصف أسماء الملفات التي ينتجها pamdice، باستثناء أن الدقة قد تكون أكثر أو أقل. (انظر خيار -numberwidth في pamdice).

لاحظ أن النمط بدون %d أو %a يؤدي إلى تكرار.

الخيارات

بالإضافة إلى الخيارات المشتركة لجميع البرامج المبنية على libnetpbm (وأبرزها -quiet، انظر
خيارات مشتركة
)، يتعرف pamundice على خيارات سطر الأوامر التالية:

هذا هو عدد البلاطات عرضياً في الشبكة، أي عدد البلاطات في كل رتبة، أو عدد الملفات.

لا يمكنك تحديد هذا مع -indexfile.

المبدئي هو 1.

هذا هو عدد البلاطات عمودياً في الشبكة، أي عدد البلاطات في كل ملف، أو عدد الرتب.

لا يمكنك تحديد هذا مع -indexfile.

المبدئي هو 1.

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

يجب ألا تكون هناك أي صورة إدخال أضيق من هذا.

لاحظ أن هذا يلغي تأثير نفس خيار -hoverlap الخاص بـ pamdice.

المبدئي هو صفر -- لا تداخل.

هذا مماثل لـ -hoverlap، لكن pamundice يقص الحافة السفلية لكل صورة قبل ضمها إلى التي أسفلها.

يسمي هذا الخيار ملفاً يحتوي على أسماء جميع ملفات الإدخال. هذا بديل لتحديد نمط اسم ملف كوسيطة.

يحتوي الملف المذكور على أسماء الملفات، بحيث يرد اسم واحد في كل سطر. ويحتوي كل ملف على
صورة لمربع واحد، مرتبة حسب الصفوف، من أعلى إلى أسفل، ومن اليسار إلى اليمين. لذا
الملف الأول هو المربع الأيسر العلوي، والثاني هو المربع الموجود على يمين
ذلك، وهكذا. يجب أن يكون عدد الأسطر في الملف مساوياً لعدد
المربعات في الناتج، وهو حاصل ضرب قيمتي -across و -down .

أسماء الملفات لا تعني شيئًا لـ pamundice. يمكنك إدراج الملف نفسه
عدة مرات للحصول على مربعات متطابقة في الناتج.

إذا قمت بإنشاء ملفات البلاطات باستخدام pamdice، يمكنك استخدام خيار -listfile الخاص بـ pamdice لإنتاج ملف قائمة مناسب لإعادة تجميع البلاطات في نفس المواضع التي كانت عليها في الصورة الكبيرة الأصلية.

لا يمكنك تحديد هذا مع -indexfile.

كان هذا الخيار جديداً في Netpbm 10.90 (مارس 2020).

يسمي هذا الخيار ملفًا يحتوي على صورة PAM تخبر أي ملفات البلاطات توضع أين في المخرجات المجمعة. راجع خيار pamdice -indexfile للحصول على تفاصيل حول تنسيقه.

طريقة نموذجية لتوليد صورة فهرس لاستخدامها مع pamundice هي استخدام خيار -indexfile الخاص بـ pamdice، ثم ربما معالجة صورة الفهرس الناتجة بأدوات Netpbm أخرى.

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

قيمة maxval لصورة الفهرس غير ذات صلة، باستثناء أنه لا يمكن أن تكون أي عينة في صورة الفهرس أكبر منها.

يجب أن يكون عمق ملف الفهرس اثنين على الأقل (الرتبة والملف)، لكن البرنامج يتجاهل أي مستويات إضافية.

يتجاهل البرنامج نوع الصف.

إذا لم تحدد هذا الخيار، يتم تحديد موضع البلاطة في المخرجات مباشرة بواسطة جزئي الرتبة والملف من اسم ملف البلاطة، أو إذا حددت -listfile، حسب الترتيب الذي تظهر به ملفات البلاطات في ملف القائمة.

لا يمكنك تحديد هذا مع -listfile أو -down أو -across.

كان هذا الخيار جديدًا في Netpbm 11.10 (مارس 2025).

يقوم هذا بطباعة معلومات حول المعالجة إلى الخطأ المعياري.

الاستخدام

فيما يلي مثال لاستخدام ملف قائمة:


Example usage of -listfile: pamdice -width=100 -height=100 -outstem=img_part -listfile=listfile \ img.ppm pamundice -listfile=listfile -across=6 -down=4 > img_copy.ppm

لاحظ أنه في المثال أعلاه، يجب أن تعرف بطريقة ما أنك حصلت على 6 ملفات و4 رتب من pamdice ثم تحدد الخيارين الصحيحين -across و -down في pamundice. خطأ بسيط يفسد العملية. الطريقة الأفضل هي استخدام -indexfile:


pamdice -width=100 -height=100 -outstem=img_part \ -numberwidth=3 -indexfile=index.pam img.pam pamundice -indexfile=index.pam img_part_%3d_%3a.pam > img_copy.pam

فيما يلي مثال لقلب صورة كبيرة. غالبًا ما يتطلب pamflip وجود الصورة بأكملها في الذاكرة الحقيقية دفعة واحدة، وهو ما قد يكون مستحيلًا أو غير عملي مع صورة كبيرة جدًا. تقوم هذه الطريقة بذلك في أجزاء أصغر لتتطلب ذاكرة أقل:


Example of -indexfile with pamflip operation:
pamdice -width=2500 -height=2500 -outstem=tile \ -numberwidth=3 -indexfile=index.pam hugeImage.ppm
# flip every tile for tile in tile_???_???.ppm do pamflip -r180 $tile > ${tile%.ppm}.flipped.ppm done
# flip indexfile - Simply apply the same flip operation pamflip -r180 index.pam > index_flipped.pam
pamundice -indexfile=index_flipped.pam tile_%3d_%3a.flipped.ppm \ > hugeImage_flipped.ppm

التاريخ

pamundice كان جديدًا في Netpbm 10.39 (يونيو 2007). قبل ذلك، pamcat هو أفضل بديل.

انظر أيضًا

pamdice(1) , pamcat(1) , pnmindex(1) , pnmtile(1) , pnmtile(1) , pnm(1) , pam(1)

مصدر المستند

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

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

ترجمة

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

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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

02 يناير 2026 توثيق netpbm