| Ppmshadow User Manual(0) | Ppmshadow User Manual(0) |
نام (NAME)
ppmshadow - افزودن سایههای شبیهسازیشده به یک تصویر PPM
خلاصه دستور (SYNOPSIS)
ppmshadow [-b blur_size] [-k] [-t] [-x xoffset] [-y yoffset] [ppmfile]
توضیحات (DESCRIPTION)
این برنامه بخشی از Netpbm(1) است.
دستور ppmshadow یک سایه شبیهسازیشده به یک تصویر اضافه میکند و این جلوه را پدید میآورد که محتویات تصویر بالای صفحه شناور هستند و سایهای پراکنده بر روی پسزمینه میاندازند. سایهها میتوانند سیاه باشند (مانند سایه حاصل از اجسام کدر) یا نیمهشفاف باشند (به طوری که سایه رنگ جسمی را که بر آن سایه افکنده به خود میگیرد). شما میتوانید میزان وضوح سایه و میزان جابجایی آن از تصویر را با گزینههای خط فرمان مشخص کنید.
برنامه ppmshadow تصویر شما را به عنوان پیشزمینهای بر روی یک پسزمینه در نظر میگیرد. رنگ پسزمینه، هر رنگی است که پیکسل گوشه بالا سمت چپ تصویر شما دارد. پسزمینه شامل تمام پیکسلهایی است که آن رنگ را دارند و پیشزمینه هر چیز دیگری غیر از آن است. سایهای که ppmshadow تولید میکند، سایه پیشزمینه است که بر روی پسزمینه انداخته میشود.
اندازه سایه برابر با اندازه پیشزمینه است، به اضافه مقداری حاشیه محو که با گزینه -b تعیین میشود. این سایه به گونهای برش داده میشود تا درون تصویر شما بگنجد. ابعاد تصویر خروجی با ابعاد تصویر ورودی یکسان است.
میتوانید پیش از اجرای ppmshadow روی یک تصویر، از pamcomp برای قرار دادن یک تصویر پیشزمینه روی پسزمینه استفاده کنید. همچنین میتوانید از ppmmake برای ساخت تصویر پسزمینه (تنها تصویری با یک رنگ یکدست) استفاده نمایید.
خروجی دارای همان ابعاد و مقدار maxval ورودی است.
اگر عمق رنگ (maxval) تصویر بسیار پایین باشد، محوسازی برای ایجاد حاشیههای سایه جلوه مطلوبی نخواهد داشت -- شما برای به دست آوردن تمام طیفهای مورد نیاز جهت ایجاد یک گرادیان یکدست به یک maxval بالا نیاز دارید. بنابراین اگر ورودی شما دارای maxval پایینی است (از جمله به ویژه اگر ورودی PBM باشد، که یعنی maxval آن ۱ است)، آن را از طریق pamdepth عبور دهید تا مقدار maxval آن افزایش یابد. معمولاً مقدار ۲۵۵ انتخاب مناسبی است.
ورودی یک فایل PPM است که با آرگومان خط فرمان ppmfile مشخص میشود؛ اگر ppmfile را تعیین نکنید، ورودی، ورودی استاندارد (Standard Input) خواهد بود.
خروجی یک فایل PPM است که در خروجی استاندارد (Standard Output) نوشته میشود.
گزینهها (OPTIONS)
دستور ppmshadow گزینههای خط فرمان زیر را میشناسد:
- -b blur_size
- فاصله منبع
نور از
تصویر را
تنظیم
میکند.
مقادیر
بزرگتر،
منبع نور را
نزدیکتر
میکنند و
سایه
پراکندهتری
ایجاد
مینمایند،
در حالی که
مقادیر
کوچکتر
نور را
دورتر
میبرند و
سایهای
تیزتر به
دست
میدهند.
مقدار blur_size
تعداد
پیکسلهای
حاشیه محوی
است که روی
سایه وجود
دارد،
فراتر از
جایی که
سایه در
صورت نبود
محوسازی
قرار
میگرفت.
پیشفرض ۱۱ پیکسل است.
توجه داشته باشید که این گزینه فقط اثر حاشیهای نزدیکتر کردن منبع نور به جسم را کنترل میکند. این گزینه بر خلاف آنچه در دنیای واقعی با نزدیک و دور کردن یک منبع نور نقطهای به جسم رخ میدهد، باعث بزرگتر یا کوچکتر شدن اندازه کلی سایه نمیشود.
- -k
- فایلهای تصویری موقت میانی را نگه میدارد. در هنگام اشکالزدایی، این فایلهای میانی سرنخهای بسیاری درباره منشأ خطا ارائه میدهند. برای فهرستی از محتویات هر فایل، به بخش زیر مراجعه کنید.
- -t
- اجزای غیر پسزمینه در تصویر را نیمهشفاف در نظر میگیرد -- این اجزا به جای سایه سیاه که حالت پیشفرض است، سایهای از رنگ خود میاندازند. این کار اغلب باعث ایجاد تصاویری تار و ناخوانا میشود، اما در برخی شرایط ممکن است جلوه بهتری داشته باشد.
- -x xoffset
- جابجایی منبع نور به سمت چپ تصویر را تعیین میکند. تنظیمات بزرگتر xoffset، سایه را به سمت راست منتقل میکنند، همانند نوری که از فاصلهای دورتر در سمت چپ میتابد. در صورت عدم تعیین، جابجایی افقی برابر با نصف blur_size (در بالا)، به سمت چپ است.
- -y yoffset
- جابجایی منبع نور در بالای تصویر را مشخص میکند. مقادیر بزرگتر سایه را به سمت پایین جابجا میکنند، متناظر با بردن نور به ارتفاعی بالاتر در بالای تصویر. اگر -y را مشخص نکنید، پیشفرض جابجایی عمودی برابر با جابجایی افقی (در بالا)، به سمت بالا خواهد بود.
دستور ppmshadow
گزینههای
مشترک تمام
برنامههای
مبتنی بر libnetpbm
را
نمیپذیرد
(نگاه کنید
به
Common Options .) با این
وجود،
گزینه -version
کار
میکند.
محدودیتها (LIMITATIONS)
تصویر مبدأ باید در لبهها و در جهتی که سایه انداخته میشود فضای کافی برای گنجاندن سایه داشته باشد -- در غیر این صورت ممکن است برخی از مراحل داخلی با شکست مواجه شوند. معمولاً میتوانید پیش از پردازش تصویر با ppmshadow، حاشیه تصویری را که بیش از حد فشرده برش خورده است با pnmmargin گسترش دهید.
پیکسلهای سیاه و پیکسلهایی با رنگ مشابه پسزمینه تصویر، سایه نمیاندازند. اگر این موضوع باعث ایجاد «حفرههای» ناخواسته در سایه میشود، نواحی تداخلکننده را با رنگی پر کنید که مقادیر RGB آن به اندازه ۱ واحد با رنگ سیاه یا رنگ پسزمینه متفاوت باشد، که برای بیننده غیرقابلتشخیص خواهد بود. از آنجا که مقایسه دقیق انجام میشود، نواحی تغییر یافته اکنون سایه خواهند انداخت.
رنگ پسزمینه تصویر مبدأ (که در خروجی حفظ میشود) به عنوان رنگ پیکسل گوشه بالا سمت چپ تصویر ورودی فرض میشود. اگر آن پیکسل بخشی از پسزمینه نیست، کافی است یک کادر یکپیکسلی در بالای تصویر اضافه کنید، تصویر سایهدار را تولید کنید و سپس کادر را از آن حذف نمایید.
اگر در حین کار خطایی رخ دهد، پیامهای خطای حاصل از برنامههای مختلف Netpbm که توسط ppmshadow فراخوانی میشوند، عموماً هیچ سرنخ یا سرنخ اندکی درباره اینکه اشکال کار ppmshadow در کجا بوده است ارائه میدهند. در این حالت، گزینه -k را مشخص کرده و نتایج میانی را در فایلهای موقت (که این گزینه باعث نگهداری آنها میشود) بررسی کنید. اگر دستوراتی را که ppmshadow روی این فایلها اجرا میکند به صورت دستی اجرا نمایید، میتوانید علت مشکل را پیدا کنید. در مواردی که با مشکل مواجه میشوید و میخواهید فرآیند تولید تصویر را در طول مسیر به طور دستی تنظیم کنید، میتوانید فایلهای میانی را با گزینه -k نگه دارید، آنها را به طور مناسب با یک ویرایشگر تصویر ویرایش کنید و سپس با استفاده از مراحلی که در کد ppmshadow به کار رفته، مجدداً آنها را با یکدیگر ترکیب نمایید.
سایهها به طور پیشفرض سیاه هستند، مانند سایه ایجاد شده توسط مادهای کدر در تصویر که مانع عبور نور سفید میشود. برای شبیهسازی ماده نیمهشفاف از گزینه -t استفاده کنید که در آن سایه، رنگ شیء سایهافکن را به خود میگیرد. اگر تضاد رنگی (کنتراست) میان تصویر و پسزمینه ناکافی باشد، گزینه -t ممکن است نتایج نامطلوبی ایجاد کند که شبیه به یک محوشدگی ساده از تصویر اصلی به نظر میرسد.
از آنجا که در گذشته حداکثر maxval در Netpbm برابر با ۲۵۵ بود، که بدان معناست بزرگترین هسته کانولوشنی که pnmconvol میتوانست استفاده کند ۱۱ در ۱۱ بود، ppmshadow شامل یک راهحل موقت زشت و مصرفکننده زمان پردازنده (CPU) است که در صورت درخواست تاری بیشتر از ۱۱، یک کانولوشن اولیه با یک هسته ۱۱ در ۱۱ انجام میدهد، سپس pnmsmooth را (که خود برنامهای است که pnmconvol را با یک هسته ۳ در ۳ فراخوانی میکند) به تعداد دفعاتی که میزان تاری درخواستشده از ۱۱ بیشتر است اجرا مینماید. این کار ناخوشایند است، اما در شرایط نادری که به تاری بیشتر از ۱۱ نیاز دارید، کار را پیش میبرد.
اگر قصد دارید تصویری را با وضوح بالا تولید کنید و سپس با pamscale برای رفع لبههای دندانهدار از طریق بازنمونهبرداری آن را به اندازه مخصوص انتشار کاهش دهید، بهتر است سایه را پیش از کوچک کردن مقیاس، در تصویر اصلی با وضوح بالا ایجاد کنید. اگر ابتدا مقیاس را تغییر دهید و سپس سایه را اضافه کنید، به دلیل اینکه پیکسلهای بازنمونهبرداریشده بین تصویر و پسزمینه روی سایه را میپوشانند، یک نوار دندانهدار ناخوشایند میان لبه شیء و سایه آن شکل خواهد گرفت.
وضعیت خروج (EXIT STATUS)
دستور ppmshadow در صورتی که پردازش بدون خطا انجام شود وضعیت 0، و در صورتی که خطایی مانع از تولید خروجی شود، یک کد خطای غیرصفر یونیکس بازمیگرداند. برخی از خطاها ممکن است منجر به خاتمه ناگهانی اسکریپت شوند، که معمولاً با نمایش پیامهای خطا از مؤلفههای مختلف Netpbm مورد استفاده همراه است بدون آنکه یک کد خطای غیرصفر بازگردانده شود. هنگامی که این حالت پیش میآید، فایل خروجی خالی خواهد بود، بنابراین اگر نیاز دارید بدانید آیا برنامه با موفقیت عمل کرده است یا خیر، حتماً این مورد را بررسی کنید.
فایلهای موقت (TEMPORARY FILES)
دستور ppmshadow هنگام اجرا تعدادی فایل موقت ایجاد میکند. این برنامه یک دایرکتوری جدید برای آنها در دایرکتوری مشخصشده توسط متغیر محیطی TMPDIR میسازد که در صورت تنظیم نشدن، پیشفرض آن /tmp است.
در حالت عادی، ppmshadow یک نام یکتا برای دایرکتوری موقت پیدا میکند و هر فایل موقت را به محض پایان کار حذف کرده و پس از اتمام هیچ پسماندی بر جای نمیگذارد. برای نگهداری فایلهای میانی به منظور اشکالزدایی، از گزینه خط فرمان -k استفاده کنید. در این حالت، نام دایرکتوری ppmshadowpid خواهد بود که در آن pid شناسه فرآیند مربوط به فرآیند ppmshadow است، و اگر ppmshadow به دلیل اینکه نام از قبل در حال استفاده است نتواند آن دایرکتوری را ایجاد کند، برنامه با شکست مواجه میشود.
فایلهای موقت عبارتند از:
- infile.ppm
- یک نسخه کپی از ورودی.
- background.ppm
- تصویر خالی با رنگ پسزمینه تصویر مبدأ.
- bgmask.ppm
- ماسک باینری مثبت.
- convkernel.ppm
- هسته کانولوشن برای محوسازی سایه.
- blurredlackshad.ppm
- تصویر سایه محوشده پیش از اعمال رنگ.
- blurred.ppm
- تصویر سایه محوشده و رنگآمیزیشده.
- shadow.ppm
- تصویر سایه برشخورده، جابجاشده مطابق با تنظیمات درخواستی.
- shadback.ppm
- سایه تولید شده ضربدر ماسک مثبت.
همچنین ببینید (SEE ALSO)
pnm(1)، pnmmargin(1)، pnmconvol(1)، pamscale(1)، pnmsmooth(1)، ppm(1)
نویسندگان (AUTHORS)
John Walker http://www.fourmilab.ch ، ۸ اوت ۱۹۹۷
کپیرایت و تکثیر (COPYRIGHT)
این نرمافزار در مالکیت عمومی (Public Domain) قرار دارد. بدین وسیله مجوز استفاده، رونوشتبرداری، تغییر و توزیع این نرمافزار و مستندات آن برای هر هدفی و بدون دریافت هزینه، بدون هیچ قید و شرط یا محدودیتی اعطا میشود.
منبع مستندات (DOCUMENT SOURCE)
این صفحه راهنما توسط ابزار Netpbm با نام 'makeman' از روی منبع HTML تولید شده است. مستندات اصلی در آدرس زیر قرار دارد:
| 24 June 2017 | netpbm documentation |