Pamfix User Manual(0) Pamfix User Manual(0)

pamfix - ترمیم یک تصویر Netpbm دارای انواع خرابی‌ها

pamfix

[-truncate] [-changemaxval] [-clip] [-verbose]

[netpbmfile]

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

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

برنامه pamfix جریانی را می‌خواند که بیشتر بخش‌های آن یک تصویر Netpbm است اما ممکن است دچار انواع خاصی از خرابی‌ها باشد، و تصویری معتبر از Netpbm تولید می‌کند که بیشتر اطلاعات نسخهٔ اصلی را حفظ کرده است.

به‌ویژه، Netpbm جریان‌هایی را نجات می‌دهد که بریده (کوتاه) شده‌اند و یا حاوی مقادیر نمونه به‌طور غیرمجاز بزرگ هستند.

برنامه pamfix در یک جریان حاوی چند تصویر، تنها اولین تصویر را بررسی می‌کند.

این جریانی است که بخش پایانی آن مفقود است. Netpbm این مشکل را با ایجاد یک تصویر خروجی که صرفاً سطرهای کمتری دارد تصحیح می‌کند.

این نوع ترمیم را با گزینهٔ -truncate انتخاب می‌کنید.

سرآیند (header) یک تصویر Netpbm مشخص می‌کند که تصویر چقدر باید بزرگ باشد (فایل باید شامل چه تعداد بایت باشد). اگر فایل در واقع کوچک‌تر از آن مقدار باشد، هر برنامهٔ Netpbm که تلاش کند تصویر را بخواند با پیام خطایی مبنی بر اینکه نتوانسته کل فایل را بخواند، با شکست مواجه می‌شود. داده‌ها در فایل به ترتیب سطر، از بالا به پایین چیده شده‌اند، و متداول‌ترین دلیل کوچک‌تر بودن فایل نسبت به آنچه در سرآیند قید شده این است که سطرهای انتهایی مفقود شده‌اند. بنابراین pamfix فرض را بر این می‌گذارد و تصویر جدیدی تنها با سطرهایی که قابل خواندن هستند تولید می‌کند (از نظر فنی، این یعنی سرآیند خروجی تعداد سطرهای کمتری را نشان می‌دهد و هرگونه سطر آخرِ ناقص را حذف می‌کند).

رایج‌ترین دلیل کوچک بودن یک فایل Netpbm این است که چیزی اجرای برنامه‌ای که آن را تولید می‌کرده پیش از اتمام نوشتن فایل متوقف ساخته است؛ مثلاً داده‌های ورودی خود برنامه تمام شده، یا با یک باگ مواجه شده، یا فضای ذخیره‌سازی برای نوشتن خروجی پر شده است.

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

اما آگاه باشید که گاهی یک فایل تصویری به دلیل وجود باگ در برنامهٔ تولیدکننده بیش از حد کوچک است، و در این حالت موضوع صرفاً نبودن انتهای تصویر نیست؛ بنابراین pamfix صرفاً یک تصویر Netpbm معتبر تولید می‌کند که حاوی تصویری بی‌معنی (garbage) است.

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

اگر می‌خواهید بخش انتهایی یک تصویر معتبر Netpbm را برش دهید، از pamcut استفاده کنید.

این جریانی است که حاوی یک مقدار نمونهٔ ادعایی بالاتر از مقدار بیشینه (maxval) تصویر است.

سرآیند یک تصویر Netpbm مقدار بیشینه (maxval) تصویر را مشخص می‌کند، مقداری که به تمام مقادیر نمونه در تصویر شطرنجی معنا می‌بخشد. مقادیر نمونه کسری از maxval را نشان می‌دهند، بنابراین یک مقدار نمونه که بزرگ‌تر از maxval باشد بی‌معنی خواهد بود.

یک برنامهٔ معمولی Netpbm اگر ورودی‌ای دریافت کند که در جایگاه یک مقدار نمونه، مقداری بزرگ‌تر از maxval داشته باشد، متوقف می‌شود.

برنامهٔ pamfix سه روش برای نجات دادن چنین جریانی دارد:

  • برش به اندازهٔ maxval (کلیپ کردن). این روش را با -clip درخواست دهید.
  • افزایش maxval، که بدین ترتیب کسر نشان‌داده‌شده توسط هر نمونه در تصویر کاهش می‌یابد. این روش را با -changemaxval درخواست دهید.
  • بریدن (کوتاه کردن) تصویر در نخستین مقدار نمونهٔ نامعتبر. این روش را با -truncate و بدون استفاده از -clip یا -changemaxval درخواست دهید.

شما نمی‌توانید هر دو گزینهٔ -clip و -changemaxval را با هم مشخص کنید.

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

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

pnm(1)، pam(1)، pamcut(1)، pamfile(1)، pamvalidate(1)

برنامه pamfix در Netpbm نسخهٔ 10.66 (مارس 2014) معرفی شد؛ اما از دل برنامهٔ pamfixtrunc بیرون آمد که در Netpbm نسخهٔ 10.38 (مارس 2007) جدید بود و تنها ترمیم تصاویر بریده‌شده را انجام می‌داد (و برای مقادیر نمونهٔ نامعتبر صرفاً آن‌ها را به خروجی منتقل می‌کرد و یک تصویر نامعتبر Netpbm تولید می‌نمود).

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

http://netpbm.sourceforge.net/doc/pamfix.html
06 March 2014 netpbm documentation