\ .\" 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 "Pnmcrop User Manual" 0 "16 August 2020" "netpbm documentation" .SH "نام (NAME)" pnmcrop \- برش کادر و حاشیه‌های یک تصویر Netpbm .UN synopsis .SH "خلاصه دستور (SYNOPSIS)" \fBpnmcrop\fP [\fB-white\fP |\fB-black\fP |\fB-sides\fP |\fB-bg-color=\fP\fIcolor\fP |\fB-bg-corner=\fP{ \fBtopleft\fP|\fBtopright\fP|\fBbottomleft\fP|\fBbottomright\fP} ] [\fB-left\fP] [\fB-right\fP] [\fB-top\fP] [\fB-bottom\fP] [\fB-margin=\fP\fIpixels\fP] [\fB-closeness=\fP\fIcloseness_percent\fP] [\fB-borderfile=\fP\fIfilename\fP] [\fB-blank-image=\fP{\fBabort\fP|\fBpass\fP|\fBminimize\fP|\fBmaxcrop\fP}] {[\fB-reportfull\fP]|[\fB-reportsize\fP]} [\fB-verbose\fP] [\fIpnmfile\fP] .PP کوتاه‌ترین مخفف منحصربه‌فرد برای هر گزینه قابل قبول است. می‌توانید به جای یک خط تیره از دو خط تیره برای تعیین گزینه‌ها استفاده کنید. همچنین می‌توانید به جای علامت مساوی از فاصله خالی برای جدا کردن نام گزینه از مقدار آن استفاده کنید. .UN description .SH "توضیحات (DESCRIPTION)" .PP این برنامه بخشی از .BR "Netpbm" (1)\c \& است. .PP برنامه \fBpnmcrop\fP یک تصویر PBM، PGM یا PPM را به عنوان ورودی خوانده، حاشیه‌هایی را که به رنگ پس‌زمینه هستند حذف می‌کند و همان نوع تصویر را در خروجی تولید می‌نماید. .PP اگر گزینه دیگری مشخص نکنید، \fBpnmcrop\fP فرض می‌کند که رنگ پس‌زمینه همان رنگ گوشه‌های بالا-چپ و بالا-راست تصویر است و اگر رنگ‌های متفاوتی داشته باشند، چیزی در میانه آن دو را در نظر می‌گیرد. می‌توانید با گزینه‌های \fB-white\fP و \fB-black\fP مشخص کنید که پس‌زمینه سفید یا سیاه است، یا با گزینه \fB-sides\fP کاری کنید که \fBpnmcrop\fP حدس خود را به جای دو گوشه، بر اساس هر چهار گوشه بنا نهد. .PP به‌طور پیش‌فرض، \fBpnmcrop\fP هر نواری از رنگ پس‌زمینه را که در هر چهار طرف پیدا کند برش می‌دهد. می‌توانید با استفاده از گزینه‌های \fB-left\fP، \fB-right\fP، \fB-top\fP و \fB-bottom\fP به \fBpnmcrop\fP بگویید که فقط حاشیه‌های خاصی را حذف کند. .PP اما توجه داشته باشید که تشخیص رنگ پس‌زمینه توسط \fBpnmcrop\fP مستقل از این است که کدام لبه‌ها را برش می‌دهید، که ممکن است خلاف شهود باشد. برای مثال، تصویری با حاشیه آبی در بالا و حاشیه سیاه در پایین را در نظر بگیرید و شما دستور برش پایین (\fB-bottom\fP) را بدهید. ممکن است انتظار داشته باشید حاشیه سیاه بریده شود، اما در واقع هیچ چیزی برش داده نخواهد شد، زیرا \fBpnmcrop\fP رنگ پس‌زمینه را همان رنگ دو گوشه بالا (که آبی است) فرض می‌کند و هیچ رنگ آبی در پایین تصویر وجود ندارد. اگر می‌خواهید \fBpnmcrop\fP رنگ پس‌زمینه را از لبه‌هایی که برش داده می‌شوند بگیرد، از \fB-bg-corner\fP استفاده کنید. .PP اگر می‌خواهید مقداری از حاشیه باقی بماند، از گزینه \fB-margin\fP استفاده کنید. این گزینه نه تنها بخشی از حاشیه را از برش مصون نگه می‌دارد، بلکه در صورت لزوم (با رنگی که \fBpnmcrop\fP پس‌زمینه می‌داند) پر می‌کند تا به آن اندازه برسد. .PP اگر ورودی یک جریان چندتصویری باشد، \fBpnmcrop\fP هر یک را به طور مستقل پردازش کرده و یک جریان چندتصویری به عنوان خروجی تولید می‌کند. این برنامه محل برش را به طور مستقل برای هر تصویر انتخاب می‌کند. بنابراین اگر با جریانی از تصاویر با ابعاد یکسان شروع کنید، ممکن است در نهایت تصاویری با ابعاد متفاوت به دست آورید. پیش از Netpbm 10.37 (دسامبر ۲۰۰۶)، \fBpnmcrop\fP تمامی تصاویر ورودی به جز تصویر نخست را نادیده می‌گرفت. .PP اگر می‌خواهید مقدار مشخصی را از اطراف یک تصویر برش دهید، از \fBpamcut\fP استفاده کنید. .PP اگر می‌خواهید پس از حذف حاشیه‌های موجود، حاشیه‌های متفاوتی اضافه کنید، از \fBpamcat\fP یا \fBpamcomp\fP استفاده نمایید. .UN options .SH "گزینه‌ها (OPTIONS)" .PP علاوه بر گزینه‌های مشترک بین تمامی برنامه‌های مبتنی بر libnetpbm (به‌ویژه \fB-quiet\fP؛ مشاهده کنید: .UR index.html#commonoptions گزینه‌های عمومی .UE \&)، برنامه \fBpnmcrop\fP گزینه‌های خط فرمان زیر را تشخیص می‌دهد: .TP \fB-white\fP رنگ سفید را به عنوان رنگ پس‌زمینه در نظر می‌گیرد. برنامه \fBpnmcrop\fP حاشیه‌هایی را که سفید هستند حذف می‌کند. .sp می‌توانید حداکثر یکی از گزینه‌های \fB-black\fP، \fB-white\fP، \fB-sides\fP، \fB-bg-color\fP و \fB-bg-corner\fP را تعیین کنید. .TP \fB-black\fP رنگ سیاه را به عنوان رنگ پس‌زمینه در نظر می‌گیرد. برنامه \fBpnmcrop\fP حاشیه‌هایی را که سیاه هستند حذف می‌کند. .sp می‌توانید حداکثر یکی از گزینه‌های \fB-black\fP، \fB-white\fP، \fB-sides\fP، \fB-bg-color\fP و \fB-bg-corner\fP را تعیین کنید. .TP \fB-bg-color=\fP\fIcolor\fP این گزینه به \fBpnmcrop\fP می‌گوید چه رنگی پس‌زمینه است؛ بخش‌هایی با این رنگ برش داده خواهند شد. مقدار \fIcolor\fP مقداری است که به عنوان .UR libnetpbm_image.html#colorname آرگومان تابع کتابخانه‌ای \fBpnm_parsecolor()\fP .UE استفاده می‌شود. .sp می‌توانید حداکثر یکی از گزینه‌های \fB-black\fP، \fB-white\fP، \fB-sides\fP، \fB-bg-color\fP و \fB-bg-corner\fP را تعیین کنید. .sp این گزینه در Netpbm 10.86 (مارس ۲۰۱۹) جدید بود. .TP \fB-sides\fP رنگ پس‌زمینه را از رنگ‌های چهار گوشه تصویر ورودی تعیین می‌کند. برنامه \fBpnmcrop\fP حاشیه‌هایی را که به رنگ پس‌زمینه هستند حذف می‌نماید. .sp اگر حداقل سه گوشه از چهار گوشه هم‌رنگ باشند، \fBpnmcrop\fP آن را به عنوان رنگ پس‌زمینه در نظر می‌گیرد. اگر این‌طور نباشد، \fBpnmcrop\fP به دنبال دو گوشه هم‌رنگ با ترتیب زیر می‌گردد و اولین مورد یافت‌شده را به عنوان رنگ پس‌زمینه انتخاب می‌کند: بالا، چپ، راست، پایین. اگر هر چهار گوشه رنگ‌های متفاوتی داشته باشند، \fBpnmcrop\fP میانگین چهار رنگ را به عنوان رنگ پس‌زمینه فرض می‌کند. .sp گزینه \fB-sides\fP سرعت \fBpnmcrop\fP را کاهش می‌دهد، زیرا کل تصویر را می‌خواند تا رنگ پس‌زمینه را تعیین کند، علاوه بر حداکثر سه باری که بدون \fB-sides\fP تصویر را می‌خواند. .sp می‌توانید حداکثر یکی از گزینه‌های \fB-black\fP، \fB-white\fP، \fB-sides\fP، \fB-bg-color\fP و \fB-bg-corner\fP را تعیین کنید. .TP \fB-bg-corner=\fP{\fBtopleft\fP|\fBtopright\fP|\fBbottomleft\fP|\fBbottomright\fP} این گزینه گوشه‌ای را مشخص می‌کند که پس‌زمینه است. برنامه \fBpnmcrop\fP از رنگ این گوشه به عنوان رنگ پس‌زمینه استفاده کرده و لبه‌هایی از آن رنگ را برش می‌دهد. .sp می‌توانید حداکثر یکی از گزینه‌های \fB-black\fP، \fB-white\fP، \fB-sides\fP، \fB-bg-color\fP و \fB-bg-corner\fP را تعیین کنید. .sp این گزینه در Netpbm 10.86 (مارس ۲۰۱۹) جدید بود. .TP \fB-left\fP حذف هرگونه حاشیه سمت چپ. .TP \fB-right\fP حذف هرگونه حاشیه سمت راست. .TP \fB-top\fP حذف هرگونه حاشیه بالا. .TP \fB-bottom\fP حذف هرگونه حاشیه پایین. .TP \fB-margin=\fP\fIpixels\fP به اندازه \fIpixels\fP پیکسل از حاشیه باقی می‌گذارد. در صورت لزوم، حاشیه را به این اندازه گسترش می‌دهد. .sp این گزینه در Netpbm 10.29 (اوت ۲۰۰۵) جدید بود. .TP \fB-closeness=\fP\fIcloseness_percent\fP هر رنگی در تصویر که حداقل تا این میزان به رنگ پس‌زمینه عملیاتی نزدیک باشد، به عنوان پس‌زمینه در نظر گرفته می‌شود. .sp می‌توانید از این گزینه در صورتی استفاده کنید که تصویر دارای حاشیه‌هایی با رنگ‌های اندکی متغیر باشد، مانند آنچه در یک عکس اتفاق می‌افتد. عکسی را در برابر یک پرده سفید در نظر بگیرید. رنگ پرده به دلیل سایه‌ها و آلودگی و موارد مشابه اندکی تغییر می‌کند، اما هنوز از رنگ سوژه عکس کاملاً متمایز است. برنامه \fBpnmcrop\fP سایه خاصی را به عنوان رنگ پس‌زمینه انتخاب می‌کند و اگر مقدار مناسب \fB-closeness\fP را تعیین کنید، به درستی تمام پرده را به عنوان پس‌زمینه تشخیص داده و آن را برش می‌دهد. .sp برای پیاده‌سازی قوانین پیچیده‌تر جهت شناسایی پس‌زمینه، از \fB-borderfile\fP استفاده کنید. .sp مقدار پیش‌فرض صفر است، به این معنی که رنگ یک پیکسل باید دقیقاً با رنگ پس‌زمینه مطابقت داشته باشد تا بخشی از حاشیه پس‌زمینه تلقی شود. .sp این گزینه در Netpbm 10.78 (مارس ۲۰۱۷) جدید بود. در نسخه‌های قدیمی‌تر Netpbm، رنگ‌ها باید دقیقاً مطابقت می‌داشتند. .TP \fB-borderfile=\fP\fIfilename\fP به جای تصویر ورودی، از تصویر موجود در فایل با نام \fIfilename\fP استفاده می‌کند تا مشخص کند حاشیه‌های تصویر ورودی کجا قرار دارند و رنگ پس‌زمینه چیست. .sp بدون این گزینه، \fBpnmcrop\fP تصویر ورودی را بررسی کرده و تعیین می‌کند کدام بخش از تصویر حاشیه و کدام بخش پیش‌زمینه (غیر حاشیه) است، و همچنین رنگ پس‌زمینه را تشخیص می‌دهد. با این گزینه، \fBpnmcrop\fP حاشیه‌ها را در یک تصویر پیدا کرده و سپس از آن چهار اندازه حاشیه (چپ، راست، بالا، پایین) در برش تصویری دیگر استفاده می‌کند. علاوه بر این، اگر از \fB-margin\fP برای افزودن حاشیه‌ها استفاده کنید، رنگ آن حاشیه‌ها همان رنگ پس‌زمینه‌ای خواهد بود که \fBpnmcrop\fP در فایل حاشیه شناسایی می‌کند. .sp نکته این قابلیت در این است که شاید بخواهید با پیش‌پردازش تصویر ورودی، به \fBpnmcrop\fP کمک کنید تا به نتیجه‌گیری متفاوتی درباره محل حاشیه‌ها و چیستی رنگ پس‌زمینه برسد. برای مثال، تصویری را در نظر بگیرید که لکه‌های نویز در حاشیه‌های آن وجود دارد. برنامه \fBpnmcrop\fP آن‌قدر باهوش نیست که این‌ها را به عنوان نویز تشخیص دهد؛ آن‌ها را به عنوان تصویر پیش‌زمینه می‌بیند. بنابراین \fBpnmcrop\fP بیشتر حاشیه‌های شما را پیش‌زمینه می‌داند و آن‌ها را آن‌طور که می‌خواهید برش نمی‌دهد. برای حل این مشکل، تصویر را از یک فیلتر لکه‌زدا مانند \fBpbmclean\fP عبور دهید و به \fBpnmcrop\fP بگویید از نسخه لکه‌زدایی‌شده به عنوان تصویر \fB-borderfile\fP استفاده کند، اما نسخه لکه‌دار اصلی را به عنوان تصویر ورودی در نظر بگیرد. به این ترتیب، حاشیه‌ها را برش می‌دهید، اما تصویر پیش‌زمینه واقعی را با تمام لکه‌هایش حفظ می‌کنید. .sp فایل حاشیه باید دارای همان تعداد تصاویر موجود در فایل ورودی باشد؛ تعیین رنگ پس‌زمینه برای تصویر N از ورودی بر اساس تصویر N از فایل حاشیه انجام می‌شود. .sp این گزینه در Netpbm 10.29 (اوت ۲۰۰۵) جدید بود. .sp پیش از Netpbm 10.46 (مارس ۲۰۰۹)، تصویر اصلی و نه فایل حاشیه، رنگ پس‌زمینه را تعیین می‌کرد. اگر هیچ رنگ پس‌زمینه مشخصی در تصویر اصلی وجود نداشت (یعنی گوشه‌های تصویر رنگ مشترکی نداشتند)، \fBpnmcrop\fP با شکست مواجه می‌شد. .TP \fB-blank-image=\fP{\fBabort\fP|\fBpass\fP|\fBminimize\fP|\fBmaxcrop\fP} نحوه مدیریت تصویری را که کاملاً پس‌زمینه (خالی) است تعیین می‌کند؛ حالتی که برش در آن چندان معنایی ندارد. .TP abort برنامه با پیامی توضیحی با شکست متوقف می‌شود (پیش‌فرض). .TP pass تصویر خروجی همانند تصویر ورودی خواهد بود. گزینه \fB-margin\fP هیچ اثری ندارد. .TP minimize خروجی یک سطر، ستون یا پیکسل واحد (از رنگ پس‌زمینه) خواهد بود. اگر هم به صورت عمودی و هم افقی برش دهید (حالت پیش‌فرض)، خروجی یک پیکسل واحد است. اگر فقط عمودی برش دهید، یک سطر واحد با همان عرض اصلی خواهد بود. اگر فقط افقی برش دهید، یک ستون واحد با همان ارتفاع اصلی خواهد بود. .sp این نتیجه‌ای تا حدی نامتجانس است؛ نتیجه سازگار از نظر ریاضی برای برش پس‌زمینه از تصویری که کاملاً پس‌زمینه است، تصویری بدون هیچ پیکسل خواهد بود. اما چنین چیزی در فرمت‌های Netpbm وجود ندارد (و احتمالاً به هر حال آن را نمی‌خواهید، زیرا هر برنامه‌ای که این خروجی را پردازش کند ممکن است آن را تحمل نکند). .sp هنگامی که \fB-closeness\fP را تعیین می‌کنید پس‌زمینه می‌تواند بیش از یک رنگ باشد، بنابراین اهمیت دارد که کدام سطر، ستون یا پیکسل باقی می‌ماند. اگر از بالا برش دهید و نه از پایین، آخرین سطر باقی می‌ماند. اگر هم از بالا و هم از پایین برش دهید، سطر میانی باقی می‌ماند. سایر حالات نیز به همین ترتیب هستند. .sp اگر حاشیه‌ای تعیین کنید (\fB-margin\fP)، تصویر خروجی کاملاً از حاشیه‌ها تشکیل می‌شود؛ هیچ سطر، ستون یا پیکسل واحدی میان حاشیه‌ها وجود نخواهد داشت. بنابراین با \fB-margin\fP، عدم تجانس ذکرشده در بالا وجود ندارد. اما پیش از Netpbm 10.92 (سپتامبر ۲۰۲۰)، گزینه \fB-margin\fP همراه با \fB-blank-image=minimize\fP نادیده گرفته می‌شد. .TP maxcrop این قابلیت عجیب یک برش فرضی را انتخاب می‌کند که حتی امکان‌پذیر نیست، و بنابراین تنها همراه با \fB-reportfull\fP یا \fB-reportsize\fP معتبر است. برشی که این گزینه انتخاب می‌کند، برش کل تصویر از هر سمتی است که درخواست برش آن را داده‌اید. بنابراین اگر فقط درخواست برش سمت چپ از تصویری با عرض ۶۰۰ پیکسل را داشته باشید، این گزینه برشی معادل ۶۰۰ پیکسل از سمت چپ و هیچ مقداری از سه سمت دیگر را انتخاب می‌کند. توجه داشته باشید که اگر این برش در عمل اعمال می‌شد، تصویری بدون پیکسل تولید می‌کرد که یک تصویر معتبر Netpbm نیست. اما اگر درخواست برش هر دو سمت راست و چپ را داشته باشید ماجرا عجیب‌تر می‌شود؛ در این حالت، برش انتخاب‌شده ۶۰۰ پیکسل از هر دو سمت راست و چپ است که تصویری با عرض منفی به جا می‌گذارد. .sp این قابلیت در واقع زمانی مفید است که بخواهید یک مجموعه واحد از پارامترهای برش را برای برش یک جریان از تصاویر پیدا کنید. برای این کار، می‌توانید یک گذر با \fB-reportsize\fP و \fB-blank-image=maxcrop\fP انجام دهید تا حداکثر برش برای هر لبه را محاسبه کنید، و سپس از آن اعداد در گزینه‌های \fB-crop\fIxxx\fP\fP در یک گذر \fBpamcut\fP برای انجام برش استفاده نمایید. در این سناریو، تصاویر تماماً پس‌زمینه (خالی) تأثیری بر پارامترهای برش محاسبه‌شده توسط شما نخواهند داشت. اگر این کار را انجام می‌دهید، باید جریان‌هایی را که منحصراً حاوی تصاویر خالی هستند به طور ویژه مد نظر قرار دهید. .sp گزینه \fB-margin\fP همیشه هنگامی که تصویر تماماً پس‌زمینه است نادیده گرفته می‌شود. .sp این گزینه در Netpbm 10.86 (مارس ۲۰۱۹) جدید بود. .TP \fB-reportfull\fP با این گزینه، \fBpnmcrop\fP در عمل چیزی را برش نمی‌دهد. در عوض، صرفاً پارامترهای برشی را که انجام می‌داد در خروجی استاندارد چاپ می‌کند. خروجی یک خط به ازای هر تصویر است، مانند این مثال: .nf 0 +7 -20 -10 200 300 rgb-255:10/0/255 0.0 .fi .sp این خط متشکل از نشانه‌های زیر است که با فاصله از هم جدا شده‌اند: .IP \(bu چند پیکسل در سمت چپ برش داده می‌شود یا افزوده می‌شود. این یک عدد ده‌دهی علامت‌دار است، که در آن + به معنای افزودن حاشیه و - به معنای برش است. اگر تغییری رخ ندهد، این مقدار صفر بدون علامت خواهد بود. .IP \(bu همان مورد، اما برای سمت راست. .IP \(bu همان مورد، اما برای سمت بالا. .IP \(bu همان مورد، اما برای سمت پایین. .IP \(bu عرض تصویر حاصل به پیکسل، به صورت عدد ده‌دهی. .IP \(bu ارتفاع تصویر حاصل به پیکسل، به صورت عدد ده‌دهی. .IP \(bu رنگی که \fBpnmcrop\fP به عنوان رنگ پس‌زمینه در نظر گرفت، مانند 'rgb-255:10/0/255' (این فرمتی است که توسط تابع کتابخانه‌ای .UR libnetpbm_image.html#colorname \fBpnm_parsecolor()\fP .UE \& تشخیص داده می‌شود). مقدار maxval در مشخصات رنگ، همان maxval تصویر است. .IP \(bu مقدار نزدیکی (گزینه \fB-closeness\fP را ببینید) که \fBpnmcrop\fP استفاده کرده است، به صورت عدد اعشاری ممیز شناور. .sp نمی‌توانید از \fB-borderfile\fP همراه با این گزینه استفاده کنید. .sp این گزینه در Netpbm 10.86 (مارس ۲۰۱۹) جدید بود. .TP \fB-reportsize\fP این گزینه مانند \fB-reportfull\fP است، اما تنها چپ، راست، بالا، پایین، عرض و ارتفاع را گزارش می‌کند. .sp نمی‌توانید از \fB-borderfile\fP همراه با این گزینه استفاده کنید. .sp این گزینه در Netpbm 10.86 (مارس ۲۰۱۹) جدید بود. .TP \fB-verbose\fP اطلاعات مربوط به پردازش را روی خطای استاندارد چاپ می‌کند، شامل مقدار دقیق آنچه از کدام طرف‌ها برش داده می‌شود. .UN seealso .SH "همچنین ببینید (SEE ALSO)" .BR "pamcut" (1)\c \&, .BR "pamfile" (1)\c \&, .BR "pnm" (1)\c \& .UN author .SH "نویسنده (AUTHOR)" حق نشر \(co ۱۹۸۹ متعلق به Jef Poskanzer است. .SH "منبع سند (DOCUMENT SOURCE)" این صفحه راهنما توسط ابزار Netpbm با نام 'makeman' از منبع HTML تولید شده است. مستندات اصلی در آدرس زیر قرار دارد: .IP .B http://netpbm.sourceforge.net/doc/pnmcrop.html .PP