.\" This man page was generated by the Netpbm tool 'makeman' from HTML source. .\" Do not hand-hack it! If you have bug fixes or improvements, please find .\" the corresponding HTML page on the Netpbm website, generate a patch .\" against that, and send it to the Netpbm maintainer. .TH "Pamundice User Manual" 0 "02 January 2026" "netpbm documentation" .SH "نام (NAME)" pamundice \- ترکیب شبکه‌ای از تصاویر (کاشی‌ها) در یک تصویر واحد .UN example .SH "مثال‌ها (EXAMPLES)" .nf \f(CW $ 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 \fP .fi .PP برای مثال‌های بیشتر به .UR pamdice.html#example pamdice .UE \& مراجعه کنید. .UN synopsis .SH "خلاصه دستور (SYNOPSIS)" \fBpamundice\fP { [\fB-across=\fP\fIn\fP] [\fB-down=\fP\fIn\fP] , \fB-indexfile=pamfilename\fP } [\fB-hoverlap=\fP\fIpixels\fP] [\fB-voverlap=\fP\fIpixels\fP] [\fB-verbose\fP] {\fIinput_filename_pattern\fP, \fB-listfile=\fP\fItextfilename\fP} .PP می‌توانید از کوتاه‌ترین مخفف یکتای گزینه‌ها استفاده کنید. می‌توانید به جای یک خط تیره از دو خط تیره استفاده نمایید. همچنین می‌توانید نام گزینه را به جای علامت مساوی با فاصله از مقدار آن جدا کنید. .UN description .SH "توضیحات (DESCRIPTION)" .PP این برنامه بخشی از .BR "Netpbm" (1)\c \& است. .PP \fBpamundice\fP دسته‌ای از تصاویر Netpbm را به عنوان ورودی خوانده و آن‌ها را به صورت شبکه‌ای از کاشی‌ها در قالب یک تصویر خروجی واحد از همان نوع در خروجی استاندارد ترکیب می‌کند. .PP به صورت اختیاری می‌توانید کاری کنید که قطعات با یکدیگر همپوشانی داشته باشند. .PP قطعات لزوماً نباید متمایز باشند؛ می‌توانید کاری کنید که یک تصویر ورودی واحد در چندین نقطه از شبکهٔ خروجی ظاهر شود. .PP تصاویر می‌توانند در فایل‌هایی باشند که نام آن‌ها محل قرارگیری‌شان را در خروجی مشخص می‌کند (مثلاً \(aqmyimage_part_03_04\(aq می‌تواند تصویر سطر ۳، ستون ۴ باشد \- آرگومان \fIinput_filename_pattern\fP را ببینید) یا اینکه با گزینهٔ \fB-listfile\fP در یک فایل متنی فهرست شده باشند. .PP همهٔ تصاویر ورودی باید دارای قالب یکسان (PAM، PPM و غیره) و مقدار maxval یکسان باشند و در مورد PAM باید عمق (depth) و نوع چندتایی (tuple type) یکسانی داشته باشند. تمام تصاویر در یک ردیف (سطر افقی از کاشی‌ها) باید ارتفاع یکسانی داشته باشند. تمام تصاویر در یک ستون (ستون عمودی از کاشی‌ها) باید پهنای یکسانی داشته باشند. اما الزامی نیست که همهٔ ردیف‌ها ارتفاع یکسان یا همهٔ ستون‌ها پهنای یکسانی داشته باشند. .PP دستور \fBpamdice\fP معکوس \fBpamundice\fP است. می‌توانید از \fBpamundice\fP برای اتصال مجدد تصویری که توسط \fBpamdice\fP تکه‌تکه شده استفاده کنید. همچنین می‌توانید از \fBpamdice\fP برای ایجاد مجدد کاشی‌های تصویری که توسط \fBpamundice\fP ساخته شده استفاده کنید، اما برای این کار، همهٔ ردیف‌های اصلی به جز ردیف انتهایی باید ارتفاع یکسانی داشته باشند و همهٔ ستون‌های اصلی به جز ستون سمت راست باید دارای پهنای یکسانی باشند. .PP یکی از کاربردهای این برنامه، پردازش تکه‌تکه‌ای تصویر در شرایطی است که کل تصویر برای پردازش بیش از حد بزرگ باشد. به عنوان مثال، ممکن است تصویری چنان حجیم داشته باشید که ویرایشگر تصویر نتواند تمام آن را در حافظه بارگذاری کند یا آن را بسیار کند پردازش کند. می‌توانید آن را با \fBpamdice\fP به قطعات کوچک‌تر تقسیم کرده، هر بار یک قطعه را ویرایش نمایید و سپس با \fBpamundice\fP دوباره آن‌ها را سرهم کنید. .PP البته، می‌توانید از \fBpamundice\fP برای ساخت انواع تصاویر شطرنجی نیز استفاده کنید؛ مثلاً می‌توانید برنامه‌ای بنویسید که تصویر هر خانه از صفحه شطرنج را محاسبه و رندر کرده، سپس با استفاده از \fBpamundice\fP آن‌ها را در قالب یک صفحهٔ کامل سرهم کند. .PP روشی جایگزین برای متصل کردن تصاویر در یک جهت واحد (یعنی یک ردیف واحد یا یک ستون واحد)، استفاده از \fBpamcat\fP است. ابزار \fBpamcat\fP روش‌های متفاوتی را برای تعیین تصاویر ورودی ارائه می‌دهد: می‌توانید آن‌ها را به صورت متوالی در ورودی استاندارد فراهم کنید یا نام آن‌ها را به عنوان آرگومان‌های خط فرمان فهرست نمایید. .PP برای پیوستن عکس‌های تکه‌تکه، به جای \fBpamundice\fP از \fBpnmstitch\fP استفاده کنید؛ زیرا محل همپوشانی قطعات را حتی در صورتی که دقیقاً به صورت عمودی یا افقی منطبق نباشند، تشخیص می‌دهد. .PP برای ایجاد تصویری حاصل از تکرار یک کاشی یکسان در یک شبکه، از \fBpnmtile\fP استفاده کنید. .PP دستور \fBpnmindex\fP کاری شبیه به \fBpamundice\fP انجام می‌دهد: دسته‌ای از تصاویر کوچک را در یک شبکه ترکیب کرده و به یک تصویر بزرگ تبدیل می‌کند. اما هدف آن تولید یک تصویر شاخص (نمایه) از تصاویر ورودی است؛ بنابراین به عنوان مثال، بین آن‌ها فاصله قرار می‌دهد و برای آن‌ها برچسب می‌گذارد. .UN arguments.SH "آرگومان‌ها (ARGUMENTS)" .PP مگر اینکه از گزینه \fB-listfile\fP استفاده کنید، یک آرگومان غیرگزینه‌ای وجود دارد که اجباری است: \fIinput_filename_pattern\fP. این آرگومان به \fBpamundice\fP می‌گوید چه فایل‌هایی حاوی کاشی‌های ورودی هستند. .PP برنامه \fBpamundice\fP تصاویر ورودی را از فایل‌هایی می‌خواند که نام‌گذاری آن‌ها بر اساس الگویی است که موقعیت آن‌ها را در تصویر ترکیب‌شده مشخص می‌کند. برای مثال، \fBtile_00_05.ppm\fP می‌تواند ششمین کاشی به سمت راست در ردیف اول باشد، در حالی که \fBtile_04_01\fP دومین کاشی در ردیف پنجم است. .PP (اما گزینه \fB-indexfile\fP را ببینید، که می‌تواند باعث بازآرایی کاشی‌ها شود به گونه‌ای که فایلی که نام آن نشان‌دهنده ششمین کاشی در ردیف اول است، در عمل توسط \fBpamundice\fP در هر موقعیت دلخواهی در خروجی قرار گیرد). .PP شما نمی‌توانید هیچ‌یک از داده‌ها را از ورودی استاندارد (Standard Input) تأمین کنید، و فایل‌ها باید از نوعی باشند که \fBpamundice\fP بتواند آن‌ها را ببندد، دوباره باز کند و همان تصویر را برای بار دوم بخواند (به عنوان مثال، یک فایل معمولی مناسب است؛ اما یک لوله نام‌گذاری‌شده (named pipe) احتمالاً مناسب نیست). .PP الگوی \fIinput_filename_pattern\fP یک الگوی به سبک printf است. (تابع استاندارد \fBprintf\fP در کتابخانه C را ببینید). برای مثال بالا، این الگو \fBtile_%2d_%2a.ppm\fP خواهد بود. تنها مشخص‌کننده‌های تبدیلِ مجاز عبارتند از: .TP \fBd\fP «down» (پایین): شماره ردیف (سطر)، که از 0 شروع می‌شود. .TP \fBa\fP «across» (افقی): شماره ستون (file)، که از 0 شروع می‌شود. .TP \fB%\fP نویسه درصد (%). .PP عدد بین % و مشخص‌کننده تبدیل، دقت (precision) است و الزامی می‌باشد. این عدد مشخص می‌کند که چند نویسه از نام فایل توسط آن تبدیل توصیف می‌شود. شماره ردیف یا ستون در صورت لزوم با صفرهای ابتدایی پر می‌شود. .PP بنابراین مثال \fBtile_%2d_%2a.ppm\fP به این معناست که برای به دست آوردن نام فایلی که حاوی کاشی در ردیف 0 و ستون 5 است، شما: .IP \(bu مقدار «%2d» را با شماره ردیف، به صورت یک عدد ده‌دهی ۲ رقمی جایگزین کنید: «00» .IP \(bu مقدار «%2a» را با شماره ستون، به صورت یک عدد ده‌دهی ۲ رقمی جایگزین کنید: «05» .PP توجه داشته باشید که این الگوی خاص، نام فایل‌هایی را توصیف می‌کند که \fBpamdice\fP تولید می‌کند، به جز اینکه ممکن است مقدار دقت کمتر یا بیشتر باشد. (گزینه \fB-numberwidth\fP در \fBpamdice\fP را ببینید). .PP توجه داشته باشید که الگویی بدون %d یا بدون %a باعث تکرار (replication) می‌شود. .UN options .SH "گزینه‌ها (OPTIONS)" .PP علاوه بر گزینه‌های مشترک بین تمام برنامه‌های مبتنی بر libnetpbm (به‌ویژه \fB-quiet\fP، به .UR index.html#commonoptions گزینه‌های مشترک (Common Options) .UE \& مراجعه کنید)، \fBpamundice\fP گزینه‌های خط فرمان زیر را می‌شناسد: .TP \fB-across=\fP\fIN\fP تعداد کاشی‌های افقی در شبکه، یعنی تعداد کاشی‌ها در هر ردیف، یا تعداد ستون‌ها. .sp نمی‌توانید این گزینه را همراه با \fB-indexfile\fP مشخص کنید. .sp پیش‌فرض 1 است. .TP \fB-down=\fP\fIN\fP تعداد کاشی‌های عمودی در شبکه، یعنی تعداد کاشی‌ها در هر ستون، یا تعداد ردیف‌ها. .sp نمی‌توانید این گزینه را همراه با \fB-indexfile\fP مشخص کنید. .sp پیش‌فرض 1 است. .TP \fB-hoverlap=\fP\fIpixels\fP مقدار هم‌پوشانی افقی کاشی‌ها بر حسب پیکسل است. \fBpamundice\fP پیش از متصل کردن هر کاشی به تصویر مجاور در سمت راست، این مقدار را از لبه راست آن برش می‌دهد. کاشی‌های لبه سمت راست دست‌نخورده باقی می‌مانند. .sp هیچ تصویر ورودی نباید باریک‌تر از این مقدار باشد. .sp توجه داشته باشید که این کار، اثر همان گزینه \fB-hoverlap\fP در \fBpamdice\fP را خنثی می‌کند. .sp پیش‌فرض صفر است \(en بدون هم‌پوشانی. .TP \fB-voverlap=\fP\fIpixels\fP مشابه با \fB-hoverlap\fP است، با این تفاوت که \fBpamundice\fP لبه پایینی هر تصویر را پیش از متصل کردن به تصویر پایینی آن برش می‌دهد. .TP \fB-listfile=\fP\fItextfilename\fP این گزینه فایلی را مشخص می‌کند که شامل نام تمام فایل‌های ورودی است. این یک روش جایگزین برای مشخص کردن الگوی نام فایل به عنوان آرگومان است. .sp فایل نام‌برده شامل نام‌های فایل است، در هر خط یک نام. هر فایل حاوی تصویر یک کاشی با ترتیب سطر-محور (row-major order)، از بالا به پایین و از چپ به راست است. بنابراین نخستین فایل کاشی بالا سمت چپ، دومین فایل کاشی سمت راست آن و به همین ترتیب خواهد بود. تعداد خطوط این فایل باید برابر با تعداد کاشی‌های خروجی، یعنی حاصل‌ضرب مقادیر \fB-across\fP و \fB-down\fP باشد. .sp نام فایل‌ها برای \fBpamundice\fP معنای خاصی ندارند. می‌توانید یک فایل یکسان را چندین بار در فهرست قرار دهید تا کاشی‌های یکسانی در خروجی داشته باشید. .sp اگر فایل‌های کاشی را با \fBpamdice\fP ایجاد کرده‌اید، می‌توانید از گزینه \fB-listfile\fP در \fBpamdice\fP برای تولید یک فایل فهرست مناسب جهت سرهم‌بندی مجدد کاشی‌ها در همان موقعیت‌های تصویر بزرگ اولیه استفاده کنید. .sp نمی‌توانید این گزینه را همراه با \fB-indexfile\fP مشخص کنید. .sp این گزینه از Netpbm 10.90 (مارس ۲۰۲۰) اضافه شده است. .TP \fB-indexfile=\fP\fIpamfilename\fP این گزینه نام فایلی حاوی یک تصویر PAM را مشخص می‌کند که تعیین می‌کند کدام فایل‌های کاشی در چه مکانی از خروجی مونتاژشده قرار گیرند. برای جزئیات مربوط به قالب آن، گزینه \fB-indexfile\fP در \fBpamdice\fP را ببینید. .sp روش معمول برای ایجاد یک تصویر شاخص جهت استفاده در \fBpamundice\fP، استفاده از گزینه \fB-indexfile\fP در \fBpamdice\fP و سپس در صورت نیاز، دستکاری تصویر شاخص حاصل با سایر ابزارهای Netpbm است. .sp در حالی که مقادیر نمونه در تصویر شاخص به عنوان موقعیت‌های ردیف و ستون در یک تصویر بزرگ اولیه تعریف شده‌اند و در مستندات نیز با همین اصطلاحات شرح داده می‌شوند، در عمل \fBpamundice\fP هیچ معنایی برای این اعداد قائل نمی‌شود \(en آن‌ها صرفاً جایگزین‌هایی برای دو متغیر در الگوی نام فایل ورودی (که به عنوان آرگومان برنامه داده شده) هستند. .sp مقدار maxval در تصویر شاخص اهمیتی ندارد، جز اینکه هیچ نمونه‌ای در تصویر شاخص نمی‌تواند از آن بزرگ‌تر باشد. .sp عمق (depth) فایل شاخص باید حداقل دو (ردیف و ستون) باشد، اما برنامه صفحه‌های (planes) اضافی را نادیده می‌گیرد. .sp برنامه نوع چندتایی (tuple type) را نادیده می‌گیرد. .sp اگر این گزینه را مشخص نکنید، موقعیت یک کاشی در خروجی مستقیماً بر اساس بخش‌های ردیف و ستون در نام فایل کاشی تعیین می‌شود، یا در صورت تعیین \fB-listfile\fP، بر اساس ترتیبی که فایل‌های کاشی در فایل فهرست درج شده‌اند مشخص می‌گردد. .sp نمی‌توانید این گزینه را همراه با \fB-listfile\fP، \fB-down\fP یا \fB-across\fP مشخص کنید. .sp این گزینه از Netpbm 11.10 (مارس ۲۰۲۵) اضافه شده است. .TP \fB-verbose\fP اطلاعات مربوط به پردازش را در خطای استاندارد (Standard Error) چاپ می‌کند. .UN usage.SH "نحوه استفاده (USAGE)" .PP در اینجا مثالی از استفاده از یک فایل فهرست آورده شده است: .nf \f(CW Example usage of -listfile: pamdice -width=100 -height=100 -outstem=img_part -listfile=listfile \e img.ppm pamundice -listfile=listfile -across=6 -down=4 > img_copy.ppm \fP .fi .PP توجه داشته باشید که در مثال بالا، باید به طریقی بدانید که ۶ فایل و ۴ ردیف از \fBpamdice\fP دریافت کرده‌اید و سپس گزینه‌های درست \fB-across\fP و \fB-down\fP را در \fBpamundice\fP مشخص کنید. یک اشتباه جزئی کل فرایند را خراب می‌کند. روش بهتر، استفاده از \fB-indexfile\fP است: .nf \f(CW pamdice -width=100 -height=100 -outstem=img_part \e -numberwidth=3 -indexfile=index.pam img.pam pamundice -indexfile=index.pam img_part_%3d_%3a.pam > img_copy.pam \fP .fi .PP در اینجا مثالی از چرخاندن/وارونه کردن یک تصویر بزرگ آورده شده است. \fBpamflip\fP اغلب نیازمند آن است که تمام تصویر به‌طور هم‌زمان در حافظهٔ اصلی قرار گیرد، که ممکن است برای تصاویری با اندازهٔ بسیار بزرگ غیرممکن یا غیرعملی باشد. این روش کار را در قطعات کوچک‌تر انجام می‌دهد تا حافظهٔ کمتری نیاز باشد: .nf \f(CW Example of -indexfile with pamflip operation: pamdice -width=2500 -height=2500 -outstem=tile \e -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 \e > hugeImage_flipped.ppm \fP .fi .UN history .SH "تاریخچه (HISTORY)" .PP دستور \fBpamundice\fP در Netpbm نسخهٔ 10.39 (ژوئن ۲۰۰۷) معرفی شد. پیش از آن، \fBpamcat\fP بهترین جایگزین بود. .UN seealso .SH "همچنین ببینید (SEE ALSO)" .BR "pamdice" (1)\c \&, .BR "pamcat" (1)\c \&, .BR "pnmindex" (1)\c \&, .BR "pnmtile" (1)\c \&, .BR "pnmtile" (1)\c \&, .BR "pnm" (1)\c \&, .BR "pam" (1)\c \&.SH "منبع سند (DOCUMENT SOURCE)" این صفحهٔ راهنما توسط ابزار Netpbm به‌نام \(aqmakeman\(aq از منبع HTML تولید شده است. مستندات مرجع در نشانی زیر قرار دارد: .IP .B http://netpbm.sourceforge.net/doc/pamundice.html .PP