Giftopnm User Manual(0) Giftopnm User Manual(0)

giftopnm - تبدیل یک فایل GIF به یک تصویر PNM

giftopnm [--alphaout={alpha-filename,-}] [-verbose] [-comments] [-image={N,all}] [-repair] [-quitearly] [GIFfile]

حداقل اختصار یکتا برای هر گزینه پذیرفته می‌شود. می‌توانید به جای یک خط تیره از دو خط تیره برای مشخص کردن گزینه‌ها استفاده کنید. همچنین می‌توانید به جای علامت مساوی، از فاصله برای جداسازی نام گزینه از مقدار آن استفاده کنید.

این برنامه بخشی از Netpbm(1) است.

این ابزار یک مبدل قالب گرافیکی از قالب GIF به قالب PNM (یعنی PBM، PGM یا PPM) است.

اگر تصویر تنها حاوی سیاه و بیشترین میزان روشنایی سفید باشد، خروجی PBM خواهد بود. اگر تصویر حاوی رنگ‌هایی بیش از این دو باشد، اما فقط از طیف خاکستری تشکیل شده باشد، خروجی PGM است. اگر تصویر دارای رنگ‌های دیگری باشد، خروجی PPM خواهد بود.

یک تصویر GIF حاوی پیکسل‌های مستطیلی است. همگی دارای نسبت ابعاد یکسانی هستند، اما ممکن است مربع نباشند (در واقع غیرمربع بودن آن‌ها بسیار غیرمعمول است، اما ممکن است رخ دهد). پیکسل‌های یک تصویر Netpbm همیشه مربع هستند. به دلیل پیچیدگی مهندسی برای انجام کاری جز این، giftopnm یک تصویر GIF را پیکسل‌به‌پیکسل به یک تصویر Netpbm تبدیل می‌کند. این بدان معناست که اگر پیکسل‌های GIF مربع نباشند، تصویر خروجی Netpbm نسبت ابعاد نادرستی خواهد داشت. در این حالت، giftopnm پیامی اطلاع‌رسانی صادر می‌کند که به شما می‌گوید برای اصلاح خروجی، pamscale را اجرا کنید.

علاوه بر گزینه‌های مشترک در تمام برنامه‌های مبتنی بر libnetpbm (به‌ویژه -quiet، به گزینه‌های مشترک مراجعه کنید)، giftopnm گزینه‌های خط فرمان زیر را می‌شناسد:

برنامه giftopnm یک فایل PBM حاوی اطلاعات شفافیت تصویر ورودی ایجاد می‌کند. ابعاد این تصویر شفافیت مشابه تصویر ورودی است و هر پیکسل از تصویر شفافیت نشان می‌دهد که آیا پیکسل متناظر در تصویر ورودی شفاف است یا خیر. رنگ سیاه به معنای شفاف و رنگ سفید به معنای کدر است. اگر --alphaout را مشخص نکنید، giftopnm فایل شفافیت تولید نمی‌کند و اگر تصویر ورودی دارای کانال شفافیت باشد، giftopnm به‌سادگی آن را نادیده می‌گیرد.

اگر - را به عنوان نام فایل تعیین کنید، giftopnm خروجی شفافیت را در خروجی استاندارد می‌نویسد و از تصویر اصلی صرف‌نظر می‌کند.

برای مشاهده یکی از روش‌های استفاده از فایل خروجی شفافیت، pamcomp(1) را ببینید.

تولید خروجی پرگو درباره فایل ورودی GIF.
با این گزینه، giftopnm پیام‌هایی را حاوی یادداشت‌های GIF نمایش می‌دهد (یک جریان GIF89 می‌تواند شامل توضیحاتی در افزونه‌های یادداشت باشد).

به طور پیش‌فرض، giftopnm افزونه‌های یادداشت را نادیده می‌گیرد.

این گزینه مشخص می‌کند که کدام تصویر از جریان GIF را می‌خواهید. می‌توانید یک تصویر یا همه تصاویر را انتخاب کنید. همه تصاویر را با all انتخاب کنید. یک تصویر را با تعیین شماره توالی آن در جریان مشخص کنید: 1، 2، 3 و غیره.

مقدار پیش‌فرض، تصویر ۱ است.

یک جریان GIF معمولاً تنها حاوی یک تصویر است، بنابراین به این گزینه نیازی نخواهید داشت. اما برخی جریان‌ها، از جمله GIFهای متحرک، دارای چندین تصویر هستند.

هنگامی که چند تصویر GIF را انتخاب می‌کنید، خروجی یک جریان PNM با چندین تصویر خواهد بود.

اگر یک تصویر واحد را مشخص کنید، giftopnm باید تصاویر پیش از آن را در جریان بخواند و تا حدی اعتبارسنجی کند. ممکن است برای تصاویر پس از آن نیز همین کار را انجام دهد یا ندهد؛ گزینه -quitearly را ببینید.

مقدار all در Netpbm 10.16 (ژوئن ۲۰۰۳) افزوده شد. نسخه‌های پیشین giftopnm تنها می‌توانستند یک تصویر را استخراج کنند.

این گزینه باعث می‌شود giftopnm تلاش کند تا هر آنچه را که می‌تواند از یک ورودی نامعتبر GIF نجات دهد.

به‌ویژه، هنگامی که giftopnm تشخیص می‌دهد ورودی GIF نامعتبر است به طوری که تعیین چیستی پیکسل‌ها غیرممکن است، یک رنگ دلخواه منفرد را برای تمام پیکسل‌های بعدی در تصویر تولید می‌کند. برنامه giftopnm تصویر را از بالا به پایین و از چپ به راست پردازش می‌کند، بنابراین این بدان معناست که پایین‌ترین پیکسل‌ها این پُرکننده خواهند بود.

هنگامی که giftopnm تصویری را به این شکل نجات می‌دهد، پیام‌های هشداری صادر می‌کند.

بدون این گزینه، giftopnm در صورت تشخیص ورودی نامعتبر GIF با شکست مواجه می‌شود. هر خروجی‌ای که تولید کند دلخواه است و معمولاً یک تصویر PNM معتبر نیست.

بسیار معمول است که یک تصویر به گونه‌ای آسیب ببیند که در ابتدا یک GIF معتبر بوده، اما انتهای فایل بریده شده باشد. یک انتقال شبکه قطع‌شده تمایل دارد چنین نتیجه‌ای ایجاد کند. در این حالت، عملیات نجات giftopnm یک تصویر PNM معتبر با ابعاد مناسب، اما با یک رنگ دلخواه یکدست برای پیکسل‌هایی که در فایل جا مانده‌اند تولید می‌کند.

این گزینه در Netpbm 10.38 (مارس ۲۰۰۷) تازه بود. از نسخه 10.32 تا 10.37، در صورت تشخیص ورودی GIF نامعتبر، giftopnm همیشه با شکست مواجه می‌شود. پیش از 10.32، در صورت وجود یک تصویر ناقص موفق می‌شد و پیکسل‌های مفقود را با رنگ‌های دلخواهی که لزوماً همه یکسان نبودند جایگزین می‌کرد (رفتار پیش از 10.32 در واقع بر اساس طراحی مورد نظر نبود).

این گزینه باعث می‌شود giftopnm به محض اینکه تصاویر درخواستی شما از ورودی را تبدیل کرد و به خروجی فرستاد، خواندن فایل ورودی را متوقف کند. به طور پیش‌فرض، giftopnm تا انتهای جریان GIF را می‌خواند و هر داده‌ای پس از تصاویر درخواستی شما را نادیده می‌گیرد.

دو دلیل برای عدم استفاده از این گزینه:

  • فایل ورودی یک لوله (pipe) است و فرایندی که آن لوله را پر می‌کند انتظار دارد لوله تمام جریان را دریافت کند و در غیر این صورت دچار شکست یا توقف می‌شود.
  • می‌خواهید تمام جریان GIF را اعتبارسنجی کنید.

    دو دلیل برای استفاده از این گزینه:

  • در زمان و سایر منابع لازم برای خواندن انتهای جریان صرفه‌جویی می‌کند.
  • خطاهایی در انتهای جریان وجود دارند که باعث شکست giftopnm می‌شوند.

    این گزینه در صورتی که -image=all را نیز مشخص کنید، هیچ تأثیری ندارد.

    این گزینه در Netpbm 10.35 (اوت ۲۰۰۶) تازه بود. پیش از آن، giftopnm همیشه کل جریان را می‌خواند.

این برنامه افزونه متن ساده (Plain Text Extension) در استاندارد GIF89 را به درستی پشتیبانی نمی‌کند، چرا که نویسنده هیچ فایل ورودی نمونه‌ای که حاوی آن باشد در اختیار نداشته است.

pamtogif(1)، ppmcolormask(1)، pamcomp(1)، http://www.lcdf.org/gifsicle ، ppm(1).

حق نشر (c) ۱۹۹۳ متعلق به David Koblas (koblas@netcom.com)

به عنوان یک نکته تاریخی، برای مدت طولانی اگر از giftopnm استفاده می‌کردید، از یک حق امتیاز اختراع (پتنت) برای روش فشرده‌سازی LZW استفاده می‌کردید که متعلق به Unisys بود و با احتمال فراوان مجوزی از Unisys برای انجام این کار نداشتید. Unisys معمولاً برای استفاده‌های جزئی از این پتنت ۵۰۰۰ دلار بابت مجوز مطالبه می‌کرد. Unisys هرگز این پتنت را علیه کاربران جزئی اعمال نکرد و اعلام نمود بسیار کمتر از بابت استفاده افراد از پتنت برای رفع فشرده‌سازی (کاری که giftopnm انجام می‌دهد) نگران است تا فشرده‌سازی. این حق اختراع در سال ۲۰۰۳ منقضی شد.

شایعاتی وجود دارد مبنی بر اینکه IBM نیز دارای یک حق ثبت اختراع است که شامل giftopnm می‌شود.

یک جایگزین برای قالب GIF که هرگز نیازی به مجوز پتنت نداشته است، قالب PNG است.

این صفحه راهنما توسط ابزار Netpbm با نام 'makeman' از روی منبع HTML تولید شده است. مستندات اصلی در نشانی زیر قرار دارد:

http://netpbm.sourceforge.net/doc/giftopnm.html
13 September 2012 netpbm documentation