| Ppmdraw User Manual(0) | Ppmdraw User Manual(0) |
نام (NAME)
ppmdraw - رسم و ویرایش خطوط، اشکال هندسی و متن بر روی تصویر PPM
خلاصه دستور (SYNOPSIS)
ppmdraw
{ -script=script | -scriptfile=filename } [-verbose]
[ppmfile]
تمامی گزینهها را میتوان به کوتاهترین پیشوند یکتای آنها خلاصه کرد. میتوانید بهجای یک خط تیره از دو خط تیره برای مشخص کردن گزینه استفاده کنید. همچنین میتوانید بین نام گزینه و مقدار آن از فاصله یا علامت مساوی استفاده نمایید.
توضیحات (DESCRIPTION)
این برنامه بخشی از Netpbm(1) است.
برنامه ppmdraw خطوط، اشکال هندسی، متن و موارد دیگر را روی یک تصویر PPM رسم میکند. این ابزار در اصل یک رابط کاربری ساده برای زیرروالهای "ppmd" در کتابخانه libnetpbm است و به شما امکان میدهد تا بهجای نوشتن یک برنامه به زبان C، از یک اسکریپت ساده و انسانفهم برای توصیف ترسیمات استفاده کنید.
شما دستورالعملهای ترسیم را از طریق یک اسکریپت ارائه میدهید؛ این اسکریپت یا در فایلی قرار دارد که با گزینه -scriptfile مشخص میشود و یا به عنوان مقدار گزینه -script ارسال میگردد. در ادامه یک نمونه اسکریپت آورده شده است:
setpos 50 50; text_here 10 30 "hello"; setcolor black; text_here 10 0 "there"; line_here 5 20;
این مثال از ستون ۵۰ و سطر ۵۰ تصویر ورودی شروع میکند و کلمه "hello" را با حروف سفید به ارتفاع ۱۰ پیکسل و با زاویه ۳۰ درجه نسبت به خط افق مینویسد. سپس از نقطهای که متن اول پایان یافته، کلمه "there" را به صورت افقی با حروف سیاه به ارتفاع ۱۰ پیکسل درج میکند. در نهایت، یک خط سیاه تا نقطهای به فاصله ۵ پیکسل به سمت راست و ۲۰ پیکسل به سمت پایین از انتهای کلمه "there" رسم مینماید.
اگر ppmfile را مشخص نکنید، ppmdraw تصویر PPM ورودی را از ورودی استاندارد (Standard Input) میخواند.
تصویر خروجی به خروجی استاندارد (Standard Output) فرستاده میشود.
برنامه ppmdraw روی جریانهای چندتصویری نیز کار میکند. این برنامه اسکریپت یکسانی را روی هر تصویر ورودی اجرا کرده و یک جریان خروجی شامل یک تصویر به ازای هر تصویر ورودی تولید میکند. اما پیش از نسخه Netpbm 10.32 (فوریه ۲۰۰۶)، ppmdraw تمامی تصاویر پس از تصویر اول را نادیده میگرفت.
اگر تنها قصد دارید یک خط متن ساده به تصویر اضافه کنید، ممکن است برنامه ppmlabel گزینه مناسبتری برای شما باشد.
گزینهها (OPTIONS)
علاوه بر گزینههای مشترک میان تمام برنامههای مبتنی بر libnetpbm (بهویژه -quiet؛ گزینههای مشترک را ببینید)، ppmdraw گزینههای خط فرمان زیر را میشناسد:
- -script=script
- این گزینه
متن
اسکریپت را
مشخص
میکند. بخش
اسکریپت
را ببینید.
نمیتوانید هر دو گزینه -script و -scriptfile را همزمان مشخص کنید.
- -scriptfile=filename
- این گزینه
نام فایلی
را مشخص
میکند که
حاوی
اسکریپت
است. مقدار
- به معنای
ورودی
استاندارد
است.
نمیتوانید هر دو گزینه -script و -scriptfile را همزمان مشخص کنید.
نمیتوانید مقدار - (ورودی استاندارد) را همزمان برای -scriptfile و فایل تصویر ورودی استفاده کنید.
اسکریپت (SCRIPT)
هسته اصلی عملکرد ppmdraw اسکریپت آن است. اسکریپت یک جریان کاراکتری متشکل از دستورات مختلف است. دستورات با نقطه-ویرگول (;) از یکدیگر جدا میشوند. فاصلههای خالی (White space) همانند زبان C در نظر گرفته میشوند: هر دنباله پیوسته از فاصلههای خالی خارج از نقلقول معادل یک نویسه فاصله تکی است. توجه داشته باشید که این موضوع بدین معناست که شکستگیهای خط (Newlines) هیچ اهمیت خاصی ندارند.
هر دستور از توکنهایی تشکیل شده است که با فاصله خالی از یکدیگر جدا میشوند. برای نوشتن توکنی که حاوی فاصله خالی است، آن را داخل نقلقول دوتایی (Double quotes) قرار دهید. تمام محتوای بین دو علامت نقلقول جفت، یک توکن واحد محسوب میشود.
اولین توکن هر دستور یک «فعل» (Verb) است که عملکرد اصلی دستور را مشخص میکند. سایر توکنهای دستور آرگومانها هستند که معنای آنها به فعل مورد نظر بستگی دارد. فهرست زیر تمام فعلهای معتبر، معنا و آرگومانهای هر یک را شرح میدهد.
بسیاری از دستورات دارای آرگومانهایی برای تعیین موقعیت روی بوم نقاشی هستند که با سطر و ستون مشخص میشوند. سطر ۰ بالاترین سطر و ستون ۰ چپترین ستون است. میتوانید اعداد منفی نیز مشخص کنید (اما چنین موقعیتی لزوماً خارج از بوم نقاشی خواهد بود).
دستورالعملهای ترسیم شما ممکن است شامل موقعیتهای خارج از بوم نقاشی باشند؛ در این حالت هر پیکسلی که در خارج از بوم رسم شود نادیده گرفته و دور ریخته میشود.
- setpos
- تنظیم
موقعیت
جاری ("current position")
در تصویر.
این موقعیت
مشخص
میکند که
دستورات
بعدی
ترسیمات را
از کجا
انجام دهند.
۲ آرگومان
این دستور
شماره ستون
و شماره سطر
هستند.
در ابتدای اسکریپت، موقعیت جاری برابر با (0,0) است.
- setlinetype
- دارای ۱ آرگومان با مقدار "normal" یا "nodiag." است. این دستور تابع ppmd_setlinetype() را فراخوانی میکند. جزئیات بیشتر هنوز مستند نشده است.
- setlineclip
- این دستور تابع ppmd_setlineclip() را فراخوانی میکند. هنوز مستند نشده است.
- setcolor
- تنظیم رنگ
جاری ("current color")
که رنگ
ترسیمات
دستورات
بعدی را
تعیین
میکند. پیش
از اولین
دستور setcolor،
رنگ جاری
سفید است.
این دستور یک آرگومان دارد که رنگ را مطابق توضیحات آرگومان تابع کتابخانهای pnm_parsecolor() مشخص میکند.
- setfont
- تنظیم قلم
جاری ("current font")
که قلم مورد
استفاده در
دستورات
بعدی رسم
متن را
تعیین
میکند. پیش
از اولین
دستور setfont،
قلم جاری یک
قلم
پیشساخته
به نام "standard"
است.
آرگومان این دستور نام یک فایل است که نام فایل قلم PPMD در Netpbm میباشد.
یک فایل قلم PPMD در Netpbm معمولاً نامی دارد که به ".ppmdfont" ختم میشود و ۸ بایت اول آن معادل کد اسکی "ppmdfont" است.
تا آنجا که میدانیم تنها یکی از این قلمها وجود دارد. این قلم همراه با Netpbm در قالب فایل standard.ppmdfont توزیع شده است، اما نیازی به استفاده از آن فایل ندارید زیرا همان قلم درون کتابخانه Netpbm تعبیه شده و پیشفرض است. اگر میخواهید قلم جدیدی بسازید، میتوانید ساختار فایل ppmdfont را در فایل هدر رابط Netpbm با نام ppmdfont.h بیابید، هرچند برای ساخت آن باید ابزارهای اختصاصی خود را بسازید. برنامه ppmdmkfont فایل standard.ppmdfont را تولید میکند، بنابراین میتوانید از آن به عنوان نمونه استفاده کنید.
- line
- رسم یک خط
با ضخامت ۱
پیکسل با
رنگ جاری. ۴
آرگومان آن
عبارتند از:
ستون شروع،
سطر شروع،
ستون
پایان، سطر
پایان.
این دستور تاثیری روی موقعیت جاری ندارد.
- line_here
- این دستور
مشابه line
است، با این
تفاوت که به
صورت نسبی
عمل میکند.
خط از نقطه جاری شروع میشود. دو آرگومان این دستور میزان جابهجایی به سمت راست و به سمت پایین از نقطه جاری تا نقطه پایانی هستند. این دستور پس از رسم خط، موقعیت جاری را به نقطه پایانی منتقل میکند.
- spline3
- رسم یک
منحنی
اسپلاین (Spline)
با رنگ جاری
بین ۲ نقطه،
با استفاده
از نقطه سوم
به عنوان
نقطه کنترل.
این دستور
یک قطعه
اسپلاین
درجه سه (Cubic spline)
را تقریب
میزند.
شکل منحنی به گونهای است که از نقاط انتهایی مشخصشده عبور میکند و خطوط مماس بر منحنی در آن نقاط انتهایی، در نقطه کنترل یکدیگر را قطع میکنند. کنترل خطوط مماس به شما اجازه میدهد این منحنی را به منحنیهای دیگری که به همین روش ایجاد شدهاند متصل کنید بدون اینکه در نقاط اتصال گوشههای تیز ایجاد شود.
۶ آرگومان این دستور عبارتند از: ستون نقطه شروع، سطر نقطه شروع، ستون نقطه کنترل، سطر نقطه کنترل، ستون نقطه پایان و سطر نقطه پایان.
این دستور تاثیری روی موقعیت جاری ندارد.
- circle
- رسم یک دایره توخالی با رنگ جاری. سه آرگومان آن عبارتند از شماره ستون و شماره سطر مرکز دایره، و شعاع دایره بر حسب پیکسل.
- filledcircle
- مشابه circle است با این تفاوت که دایره با رنگ جاری پر میشود. این رده از دستورات در نسخه Netpbm 10.59 (ژوئن ۲۰۱۲) معرفی شد.
- filledrectangle
- رسم یک
مستطیل
توپر با رنگ
جاری.
۴ آرگومان آن عبارتند از شماره ستون و سطر گوشه بالا-چپ مستطیل، عرض مستطیل و ارتفاع مستطیل.
- text
- رسم متن با رنگ جاری و با استفاده از قلم پیشساخته. ۵ آرگومان آن عبارتند از:
- شماره ستون نقطه شروع خط کرسی (Baseline)
- شماره سطر نقطه شروع خط کرسی
- ارتفاع نویسهها بر حسب پیکسل
- زاویه خط کرسی به درجه نسبت به افق
- متن
توجه داشته باشید که اگر متن شما شامل فاصله خالی است، باید از نقلقول دوتایی استفاده کنید تا به عنوان یک توکن تکی در نظر گرفته شود.
- text_here
- این دستور
مشابه text
است، با این
تفاوت که خط
کرسی از
موقعیت
جاری آغاز
میشود و
دستور پس از
رسم متن،
موقعیت
جاری را به
انتهای
دیگر خط
کرسی
بهروزرسانی
میکند.
به خاطر داشته باشید که اسکریپت با موقعیت جاری در بالاترین سطر شروع میشود، بنابراین اگر آن را در همانجا رها کنید، فقط خط پایینی متن شما در داخل تصویر قرار خواهد گرفت!
تاریخچه (HISTORY)
دستور ppmdraw در Netpbm 10.29 (اوت ۲۰۰۵) معرفی شد.
همچنین ببینید (SEE ALSO)
منبع سند (DOCUMENT SOURCE)
این صفحه راهنما توسط ابزار 'makeman' از Netpbm و از روی منبع HTML تولید شده است. مستندات مرجع اصلی در نشانی زیر قرار دارد:
| 17 mAY 2025 | netpbm documentation |