| Pamtopng User Manual(0) | Pamtopng User Manual(0) |
نام (NAME)
pamtopng - تبدیل تصویر Netpbm به PNG
خلاصه دستور (SYNOPSIS)
pamtopng [-verbose]
[-transparent=color] [-background=color]
[-gamma=value] [-chroma='wx wy
rx ry gx gy bx by']
[-srgbintent=intent]
[-time=[yy]yy-mm-dd
hh:mm:ss] [-text=file]
[-ztxt=file] [-itxt=file] [-interlace]
[pnmfile]
نحوه استفاده از گزینهها (OPTION USAGE)
میتوان گزینهها را به کوتاهترین پیشوند یکتای آنها مخفف کرد. میتوانید به جای یک خط تیره از دو خط تیره برای مشخص کردن گزینهها استفاده کنید. همچنین میتوانید به جای علامت مساوی، از فاصله برای جدا کردن نام گزینه و مقدار آن استفاده نمایید.
توضیحات (DESCRIPTION)
این برنامه بخشی از Netpbm(1) است.
برنامه pamtopng یک تصویر Netpbm را به عنوان ورودی خوانده و یک تصویر PNG به عنوان خروجی تولید میکند.
مقادیر مؤلفههای رنگ در فایلهای PNG دارای عرض ۸ یا ۱۶ بیت هستند، بنابراین در صورت لزوم pamtopng رنگها را مقیاسبندی میکند تا دارای maxval برابر با ۲۵۵ یا ۶۵۵۳۵ باشند. در این حالت، برای نشان دادن عمق بیتی اولیه، یک تکه (chunk) با نام sBIT اضافه میکند.
برنامه pamtopng فقط روی تصاویری با maxval برابر با ۱، ۳، ۱۵، ۲۵۵ یا ۶۵۵۳۵ کار میکند. میتوانید از pamdepth برای تبدیل تصویری با مقادیر دیگر maxval به یکی از این مقادیر استفاده کنید.
برنامه pamtopng از یک PAM رنگی، یک PNG رنگی تولید میکند، حتی اگر تنها رنگهای موجود در تصویر سایههایی از خاکستری باشند. برای ایجاد یک PNG در مقیاس خاکستری (grayscale) از چنین تصویری (که ممکن است کمی کوچکتر باشد)، میتوانید از سایر برنامههای Netpbm برای تبدیل ورودی به مقیاس خاکستری استفاده کنید.
برنامه جایگزین: pnmtopng (Alternative: pnmtopng)
مجموعه Netpbm شامل برنامه دیگری برای تولید تصاویر PNG است: pnmtopng. برنامه pnmtopng بسیار قدیمیتر است - در واقع نخستین برنامه در جهان است که قادر به تولید PNG بود. pnmtopng برنامهای پیچیده و پر از قابلیتهای گوناگون است. این برنامه امکان کنترل جنبههای مختلف تبدیل و ایجاد فایلهای PNG با ویژگیهای پیچیده را فراهم میکند. این ابزار تبدیلهای مختلفی روی تصویر انجام میدهد تا بیشترین فشردهسازی ممکن حاصل شود، تا حدی که احتمالاً در دنیای امروز تفاوتی ایجاد نمیکند.
مزیت اصلی pamtopng نسبت به pnmtopng این است که اولی میتواند از کانال شفافیت یک تصویر PAM برای تولید اطلاعات شفافیت در PNG استفاده کند. در مقابل، مدیریت کانال آلفا در pnmtopng بسیار دشوار و پرزحمت است.
یک تفاوت که وجود ندارد، و ممکن است برخی افراد به اشتباه از نامها برداشت کنند، قالبهای ورودی ممکن است. هر دو برنامه میتوانند ورودیهای PBM، PGM، PPM و PAM را دریافت کنند.
از آنجا که pnmtopng تقریباً همیشه وجود داشته است، برنامهها و رویههایی که از آن استفاده میکنند سازگاری و قابلیت حمل بیشتری نسبت به برنامههای مبتنی بر pamtopng دارند. همچنین قدمت و محبوبیت آن احتمالاً باعث میشود باگهای کمتری داشته باشد.
برنامه pamtopng هیچ روشی برای انجام کارهایی که گزینههای زیر در pnmtopng انجام میدهند ندارد:
- -palette
- -history
- -filter
- -size
- -paeth
- -hist
- -nofilter
- -sub
- -up
- -avg
- -force
- -libversion
- -compression
- -comp_xxx
برخی دیگر از عملکردهای pnmtopng که pamtopng فاقد آنهاست عبارتند از:
- •
- هنگامی که رنگ شفاف یا پسزمینهای را مشخص میکنید که در تصویر وجود ندارد، pnmtopng میتواند به صورت اختیاری نزدیکترین رنگ موجود در تصویر را انتخاب کند. اما pamtopng همیشه دقیقاً از رنگی که تعیین کردهاید استفاده میکند.
ویژگیهایی که در هر دو برنامه وجود دارند عمدتاً با ساختار دستوری مشابهی کنترل میشوند. اما تفاوتهای زیر وجود دارد:
- گزینه -rgb در pnmtopng در برنامه pamtopng به صورت -chroma است. نام -chroma مناسبتر است و در واقع نامی بود که pnmtopng در ابتدا استفاده میکرد، اما زمانی که مجبور شدیم نحو مقدار گزینه را برای انطباق با بقیه Netpbm تغییر دهیم، ناچار شدیم نام آن را تغییر دهیم.
- گزینه -modtime در pnmtopng در برنامه pamtopng به -time تبدیل شده است. منشأ تغییر -modtime مشابه -rgb است.
گزینهها (OPTIONS)
علاوه بر
گزینههای
مشترک در
تمام
برنامههای
مبتنی بر libnetpbm
(بهویژه
-quiet، به
گزینههای
عمومی (Common Options)
مراجعه
کنید)، pamtopng
گزینههای
خط فرمان
زیر را
میشناسد:
- -transparent=color
- برنامه pamtopng
رنگ
مشخصشده
را به عنوان
رنگ شفاف در
تصویر PNG
علامتگذاری
میکند -- هر
پیکسلی با
این رنگ
کاملاً
شفاف خواهد
بود. این
کار باعث
میشود pamtopng
یک تکه tRNS را
در تصویر
قرار دهد که
مشخصکننده
آن رنگ است.
رنگ (color) را همانطور که برای آرگومان روال کتابخانهای pnm_parsecolor() شرح داده شده مشخص کنید؛ مانند red یا rgb:ff/00/0d.
- -background=color
- این گزینه
باعث
میشود pamtopng
یک تکه (chunk) رنگ
پسزمینه
در خروجی PNG
ایجاد کند
که
میتواند
برای
تبدیلات
بعدی کانال
شفافیت یا
رنگ شفاف به
کار رود.
مقدار color را
همانند -transparent
مشخص کنید.
- -gamma=value
- این گزینه
باعث
میشود pamtopng
یک تکه gAMA
ایجاد کند.
این
اطلاعات به
توصیف نحوه
تفسیر
مقادیر رنگ
در PNG کمک
میکند.
بدون تکه gAMA،
هر
برنامهای
که PNG را
تفسیر
میکند
باید این
اطلاعات را
جداگانه به
دست آورد
(یا صرفاً
یک مقدار
استاندارد
را فرض کند).
اگر ورودی
شما یک
تصویر PPM یا PGM
واقعی است،
باید -gamma=.45 را
مشخص کنید.
اما گاهی
اوقات
تصاویری
تولید
میشوند که
ظاهراً PPM
هستند با
این تفاوت
که تصویر از
یک تابع
انتقال
گامای
متفاوت از
آنچه برای PPM
مشخص شده
استفاده
میکند. یک
حالت رایج
این امر
زمانی است
که تصویر
توسط
سختافزار
سادهای
ایجاد شده
باشد که
فاقد توان
محاسبات
دیجیتال
است. همچنین
برخی
برنامههای
ساده که
تصاویر را
از صفر
ایجاد
میکنند
این کار را
با یک
انتقال
گاما که
مقدار آن 1.0
است انجام
میدهند.
- -chroma=chroma_list
- این گزینه
نحوه تعیین
رنگ خاص بر
اساس
مقادیر
مؤلفههای
قرمز، سبز و
آبی یک
پیکسل را با
مشخص کردن
رنگینگی (chromaticity)
این ۳ منبع
روشنایی
اصلی و رنگ
سفید (یعنی
شدت کامل هر
سه) تعیین
میکند.
مقدار chroma_list فهرستی از ۸ عدد اعشاری ممیز شناور است که با فاصله از هم جدا شدهاند: رنگینگیهای X و Y استاندارد CIE-1931 (به همان ترتیب) برای هر یک از رنگهای سفید، قرمز، سبز و آبی، به همان ترتیب.
این اطلاعات در تکه cHRM تصویر PNG ذخیره میشود.
در یک دستور پوسته (شل)، حتماً از علامت نقلقول استفاده کنید تا فاصلههای درون chroma_list باعث نشوند پوسته آنها را به عنوان چند آرگومان دستور مجزا ببیند.
- -srgbintent=intent
- این گزینه
مشخص
میکند که
ورودی یک
تصویر
شبهNetpbm است
که از فضای
رنگی sRGB
استفاده
میکند
(برخلاف Netpbm
واقعی) و
نشان
میدهد قصد
دارید
رنگها
چگونه رندر
شوند. این
گزینه باعث
میشود pamtopng
یک تکه sRGB در
تصویر PNG
بگنجاند که
این هدف را
مشخص
میکند؛
برای
اطلاعات
بیشتر
درباره
معنای
واقعی این
مفهوم به
مستندات PNG
مراجعه
کنید.
مقدار intent یکی از موارد زیر است:
- perceptual
- relativecolorimetric
- saturation
- absolutecolorimetric
- -text=filename
- این گزینه
امکان
گنجاندن
رشتههای
متنی
دلخواه را
در خروجی PNG
به صورت
تکههای tEXt
فراهم
میکند.
filename نام فایلی است که رشتههای متنی شما را در بر دارد.
خروجی برای هر ورودی در فایل، شامل یک تکه tEXt مجزا خواهد بود.
در اینجا نمونهای از یک فایل رشته متنی آورده شده است:
Title PNG file Author John Doe Description how to include a text chunk PNG file "Creation Date" 2015-may-11 Software pamtopngاین فایل به ورودیهایی تقسیم میشود که هر ورودی شامل خطوط متوالی از متن است. خط اول هر ورودی از ستون اول شروع میشود (یعنی ستون اول فاصله خالی نیست) و تمام خطوط دیگر دارای فاصله خالی در ستون اول هستند. نخستین ورودی در خط اول فایل شروع میشود، بنابراین مجاز نیست که اولین خط فایل دارای فاصله خالی در ستون اول خود باشد.
اولین کلمه در یک ورودی، کلید رشته متنی است (مانند 'Title'). این کلید از ستون اول خط شروع شده و تا اولین نویسه جداکننده یا انتهای خط (هر کدام زودتر باشد) ادامه مییابد بدون اینکه نویسه جداکننده جزو کلید باشد. میتوانید کلید را در گیومه دوتایی قرار دهید که در این صورت کلید میتواند شامل چند کلمه باشد. گیومهها جزئی از کلید نیستند. خود رشته متنی پس از کلید و هرگونه نویسه جداکننده بعد از آن، بهعلاوه متن خطوط ادامهدار بعدی آغاز میشود.
هیچ محدودیتی در طول سطر، ورودی، کلید یا رشته متنی فایل وجود ندارد. همچنین هیچ محدودیتی در تعداد ورودیها وجود ندارد.
- -ztxt=filename
- مشابه -text
است، با این
تفاوت که
رشته متنی
در خروجی PNG
فشردهسازی
میشود.
برنامه pamtopng
به جای
تکههای tEXt
از تکههای
zTXt استفاده
میکند.
- -itxt=filename
- مشابه -text
است، با این
تفاوت که
رشتههای
متنی
میتوانند
به زبانی
غیر از
انگلیسی
باشند.
تصویر PNG
نشان
میدهد که
آن زبان
چیست و کلید
رشته متنی
را هم به
انگلیسی و
هم به آن
زبان شامل
میشود.
برنامه pamtopng
به جای
تکههای tEXt
از تکههای
iTXt استفاده
میکند.
برای هر رکورد، باید زبان را مشخص کنید و کلید را هم به انگلیسی و هم به زبان رشته متنی ارائه دهید.
مثال:
Language nl-NL Taal nl-NL Title nl-NL Titel PNG file Author nl-NL Auteur Pietje Puk Description nl-NL Omschrijving Tekst in het Nederlands.مشخصات زبان بر اساس استاندارد ISO 639-1 است؛ برای کدهای معتبر به http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes مراجعه کنید. قالب کد میتواند دو نویسهای مانند "nl" یا یک کد گسترشیافته مانند "en-US" باشد.
- -time='[yy]yy-mm-dd hh:mm:ss'
- این گزینه
به شما
اجازه
میدهد
مقدار زمان
ویرایش (modification time)
را برای
قرار گرفتن
در خروجی PNG
مشخص کنید.
میتوانید
پارامتر
سال را به
صورت مقدار
دو رقمی یا
چهار رقمی
مشخص
نمایید.
- -interlace
- این گزینه
باعث
میشود
فایل PNG به
صورت
درهمبافته
(interlaced) در قالب Adam7
تولید شود.
قالب
درهمبافته
قالبی است
که در آن
دادههای
شطرنجی با
نمایشی با
وضوح پایین
از کل تصویر
آغاز
میشود،
سپس با
اطلاعات
تکمیلی
برای کل
تصویر
ادامه
مییابد،
سپس
اطلاعات
باز هم
بیشتر و الی
آخر.
بهویژه در
Adam7، هفت
مرحله
پیمایش روی
کل تصویر
انجام
میشود. این
قابلیت
زمانی مفید
است که
تصویر را از
طریق یک خط
ارتباطی
کند دریافت
میکنید و
شخصی منتظر
دیدن آن
است.
سادهترین
کار در چنین
شرایطی این
است که
منتظر
بمانید کل
تصویر برسد
و سپس آن را
بلافاصله
نمایش
دهید، اما
در این حالت
کاربر زمان
را با خیره
شدن به یک
فضای خالی
تلف میکند
تا کل تصویر
دریافت شود.
در قالب
استاندارد
غیر
درهمبافته،
دادهها
سطر به سطر
از بالا
میرسند،
بنابراین
نمایشگر
میتواند
هر سطر
تصویر را به
محض رسیدن
نمایش دهد و
به تدریج به
سمت پایین
پیش برود.
اما با یک
تصویر
درهمبافته،
نمایشگر
میتواند
با نمایش
نسخه با
وضوح پایین
از کل تصویر
شروع کرده و
با رسیدن
دادههای
بیشتر،
کیفیت
نمایش را به
تدریج
بهبود بخشد.
هنگامی که این گزینه را مشخص میکنید، pamtopng باید کل تصویر را به طور همزمان در حافظه نگه دارد، در حالی که بدون آن، برنامه تنها یک سطر شطرنجی را در هر لحظه در حافظه نگه میدارد. اگر حافظه کافی برای این کار نداشته باشید، ممکن است با کندی بسیار شدید یا خطا مواجه شوید - نه تنها در فرآیند اجرای pamtopng، بلکه احتمالاً در سراسر سیستمی که حافظه را با آن به اشتراک میگذارد. برنامه pnmtopng این محدودیت را ندارد (حتی هنگام تولید PNG درهمبافته تنها یک سطر را در حافظه نگه میدارد).
این گزینه در Netpbm 10.86 (مارس 2019) اضافه شد.
- -verbose
- این گزینه
باعث
میشود
برنامه
اطلاعات و
وقایع
گوناگون
درباره
فرآیند
تبدیل را
نمایش دهد.
همچنین ببینید (SEE ALSO)
pngtopam(1), pnmtopng(1), pam(1), pnm(1)
برای اطلاعات درباره قالب PNG، به http://www.w3.org/TR/PNG ، http://libpng.org/pub/png ، http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes و http://schaik.com/png مراجعه کنید.
تاریخچه (HISTORY)
برنامه pamtopng در Netpbm 10.70 (ژوئن 2015) معرفی شد.
پیش از pamtopng، دو روش برای ایجاد تصاویر PNG در Netpbm وجود داشت: pnmtopng و pamrgbatopng. تاریخچه برنامه اول در بالا مورد بحث قرار گرفت. برنامه دوم در سال ۲۰۰۵ به عنوان روشی ساده برای رفع یک نیاز اساسی که pnmtopng پاسخگوی آن نبود به Netpbm اضافه شد: امکان تبدیل کانال آلفا در یک تصویر PAM به کانال آلفا در تصویر PNG.
مدیریت کانال آلفا در pnmtopng بسیار پرزحمت و دشوار است (همانطور که کار با کانالهای آلفا پیش از معرفی قالب PAM به طور کلی دشوار بود). pamrgbatopng میتوانست آنچه را کاربران درباره کانال آلفا میخواستند انجام دهد، اما کار دیگری نمیکرد. این یک برنامه بسیار کوچک بود که عملاً هیچ گزینه خط فرمانی نداشت.
هدف در آن دوران این بود که سرانجام pnmtopng گسترش یابد تا قابلیت کانال آلفای PAM را داشته باشد، نام آن به pamtopng تغییر کند و pamrgbatopng کنار گذاشته شود. اما pnmtopng به دلیل تنوع شگفتانگیز ویژگیهایش و لزوم حفظ سازگاری عقروعقب، چنان برنامه پیچیدهای است که افزودن آن قابلیت به آن وظیفهای دلهرهآور بود و تا ده سال هیچکس تلاشی برای انجام آن نکرد.
در سال ۲۰۱۵، یکی از نویسندگان نسخه اولیه pnmtopng (پیش از آنکه حتی بخشی از Netpbm باشد -- برنامهای که اساساً هیچ خط کدی مشترک با pnmtopng سال ۲۰۱۵ نداشت) تصمیم گرفت مسیر متفاوتی را در پیش بگیرد. در حالی که بسیاری از ویژگیهای pnmtopng بسیار مهم بودند و پیادهسازی آسانی داشتند، بسیاری دیگر احتمالاً در دنیای مدرن کاربردی نداشتند یا حداقل آنقدر مهم نبودند که پیچیدگی ناشی از آنها در کد را توجیه کنند. (ویژگیهایی که قدیمی پنداشته شدند مواردی بودند که هدفشان اندکی کوچکتر کردن خروجی PNG بود - موضوعی که با کاهش هزینه منابع رایانهای اهمیت بسیار کمتری پیدا کرده بود).
و این فرصت وجود داشت که آن ویژگیها حذف شوند: میتوانستیم از نام جدید 'pamtopng' برای برنامهای جدید استفاده کنیم، برنامه موجود را تحت نام 'pnmtopng' نگه داریم و از بسیاری از دردسرهای سازگاری با گذشته دوری گزینیم.
از این رو، ویلم ون شایک (Willem van Schaik) برنامهای در سطح میانی نوشت که همه ویژگیهای اصلی pnmtopng را به همراه پشتیبانی از کانال آلفای pamrgbatopng، با کدی ساده و مرتب شامل میشد. این برنامه همان pamtopng بود.
از آنجا که pamrgbatopng هیچ گزینهای نداشت، pamtopng حتی بدون تلاش خاصی با آن سازگار بود. بنابراین، به محض اینکه pamtopng را به Netpbm اضافه کردیم، pamrgbatopng را حذف کرده و توصیه نمودیم که pamrgbatopng به عنوان یک نام مستعار (alias) برای pamtopng نصب شود.
نویسنده (AUTHOR)
کپیرایت (C) ۱۹۹۵-۱۹۹۷ متعلق به Alexander Lehmann و Willem van Schaik. کپیرایت (C) ۲۰۱۵ متعلق به Willem van Schaik.
منبع مستندات (DOCUMENT SOURCE)
این صفحه راهنما توسط ابزار Netpbm تحت عنوان 'makeman' از منبع HTML تولید شده است. مستندات اصلی در آدرس زیر قرار دارد:
| 13 March 2019 | netpbm documentation |