Pamtotiff User Manual(0) Pamtotiff User Manual(0)

pamtotiff - تبدیل یک تصویر Netpbm به یک فایل TIFF

pamtotiff

[-none | -packbits | -lzw | -g3 | -g4 | -flate | -adobeflate]

[-2d]

[-fill]

[-predictor=n]

[-msb2lsb|-lsb2msb]

[-rowsperstrip=n]

[-minisblack|-miniswhite|mb|mw]

[-truecolor]

[-color]

[-indexbits=bitwidthlist] [-xresolution=xres]

[-yresolution=yres] [-resolutionunit={inch | centimeter | none | in | cm | no}]

[-append]

[-tag=taglist]

[pamfile]

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

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

برنامه pamtotiff یک تصویر PNM یا PAM را به عنوان ورودی خوانده و یک فایل TIFF به عنوان خروجی تولید می‌کند.

در واقع، این برنامه جریان‌های چندتصویری Netpbm را مدیریت کرده و جریان‌های چندتصویری TIFF تولید می‌کند (یعنی یک جریان TIFF با چندین «دایرکتوری»). اما پیش از Netpbm 10.27 (مارس 2005)، تمام تصاویر ورودی به جز اولین تصویر در جریان ورودی Netpbm را نادیده می‌گرفت.

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

به دلیل نحوه عملکرد کتابخانه TIFF (که pamtotiff از آن استفاده می‌کند)، زمانی که برنامه در خروجی استاندارد می‌نویسد، کل تصویر TIFF را در یک فایل موقت ایجاد کرده و سپس آن را در خروجی استاندارد کپی می‌کند؛ ممکن است اثرات منفی این فرآیند بر کارایی سیستم را مشاهده کنید.

روش -output از اثرات نامطلوب کپی از طریق فایل موقت جلوگیری می‌کند، اما محدودیت‌هایی برای فایل خروجی وجود دارد: فایل باید قابل پیمایش (seekable) و قابل خواندن باشد. اگر این‌گونه نباشد، برنامه با خطا متوقف می‌شود. در مورد خروجی استاندارد، هیچ‌یک از این محدودیت‌ها اعمال نمی‌شود.

با استفاده از -output، اگر فایل از قبل وجود داشته باشد و حاوی داده باشد، pamtotiff تصویر را به انتهای فایل TIFF موجود الحاق می‌کند (یک فایل TIFF می‌تواند شامل چندین تصویر باشد).

به‌طور پیش‌فرض، pamtotiff در صورتی که فایل تعیین‌شده با -output از قبل وجود نداشته باشد، آن را ایجاد می‌کند. اما اگر گزینه -append را نیز مشخص کنید، در صورت عدم وجود قبلی فایل مشخص‌شده با -output، برنامه با خطا مواجه خواهد شد.

پیش از Netpbm 10.67 (ژوئن 2014)، گزینه -output وجود نداشت و خروجی استاندارد باید قابل پیمایش (seekable) می‌بود؛ بنابراین امکان استفاده از لوله‌ها (pipes) نبود.

پیش از Netpbm 10.67 (ژوئن 2014)، امکان الحاق به خروجی استاندارد وجود داشت (به بخش زیر مراجعه کنید). برنامه فعلی این قابلیت را ندارد؛ برای الحاق به یک فایل TIFF موجود باید از -output استفاده کنید.

تفاوت بالا بدین معناست که نسخه فعلی pamtotiff در واقع با گذشته سازگار نیست، که این اتفاق برای Netpbm نادر است. اما این تغییر مطلوبی است زیرا عملکرد پیشین بسیار نامتعارف بود و احتمالاً به‌ندرت مورد استفاده قرار می‌گرفت.

نسخه‌های قدیمی (Old Versions)

همان‌طور که در بالا اشاره شد، pamtotiff در نسخه‌های قبل از 10.67 خروجی را بسیار متفاوت انجام می‌داد. در ادامه عملکرد قدیمی شرح داده شده است که هم برای Netpbm و هم برای برنامه‌های یونیکس به طور کلی نامعمول است.

  • فایل خروجی باید قابل پیمایش (seekable) باشد. pamtotiff آن را به صورت متوالی نمی‌نویسد. بنابراین، نمی‌توانید از لوله استفاده کنید؛ نمی‌توانید خروجی pamtotiff را به برنامه دیگری لوله‌کشی کنید. اما هر فایل معمولی باید کار کند.
  • اگر توصیف‌کننده فایل خروجی قابل خواندن باشد، باید یا -append را مشخص کنید تا به فایل موجود اضافه شود، یا مطمئن شوید که فایل خالی است. در غیر این صورت، pamtotiff با پیامی نه‌چندان مفید مبنی بر این‌که یک تابع کتابخانه TIFF در باز کردن جریان خروجی TIFF شکست خورده است، متوقف خواهد شد.
  • اگر در حال تبدیل چندین تصویر هستید (جریان ورودی شما شامل چندین تصویر است)، فایل خروجی باید هم قابل خواندن و هم قابل نوشتن باشد.

اگر برای اجرای pamtotiff از یک پوسته خط فرمان یونیکس استفاده می‌کنید، از امکانات پوسته خود برای تنظیم خروجی استاندارد بهره می‌گیرید. در Bash، برای مثال، یک خروجی استاندارد فقط-نوشتنی را برای فایل /tmp/myimage.tiff به این صورت تنظیم می‌کنید:


    $ pamtotiff myimage.pnm >/tmp/myimage.tiff

در Bash، یک خروجی استاندارد خواندنی/نوشتنی را برای فایل /tmp/myimage.tiff به این شکل تنظیم می‌کنید:


    $ pamtotiff myimage.pnm 1<>/tmp/myimage.tiff

برنامه pamtotiff از کتابخانه Libtiff.org TIFF (یا هر معادل دیگری که فراهم آورید) برای تولید خروجی TIFF استفاده می‌کند. بنابراین جزئیات قالبی که تولید می‌کند توسط آن کتابخانه کنترل می‌شود.

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

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

پیش از Netpbm 8.4 (آوریل 2000)، حالت پیش‌فرض استفاده از فشرده‌سازی LZW بود. اما در نسخه‌های جدید کتابخانه TIFF به دلیل نگرانی‌های مربوط به حق اختراع (پتنت) LZW، این قابلیت حذف گردید؛ بنابراین از آن زمان تاکنون پیش‌فرض بدون فشرده‌سازی بوده است. حق اختراع‌های LZW اکنون منقضی شده‌اند و کتابخانه‌های جدید TIFF از LZW پشتیبانی می‌کنند، اما رفتار pamtotiff برای سازگاری با کتابخانه‌های قدیمی‌تر TIFF و برنامه‌های کاربردی استفاده‌کننده از pamtotiff یکسان باقی مانده است.

گزینه‌های -none، -packbits، -lzw، -g3، -g4، -flate و -adobeflate برای لغو حالت پیش‌فرض و تعیین طرح فشرده‌سازی در ایجاد فایل خروجی استفاده می‌شوند.

گزینه -predictor تنها در فشرده‌سازی LZW دارای معناست: مقدار پیش‌بین برابر با ۲ باعث می‌شود هر سطر اسکن تصویر خروجی قبل از کدگذاری تحت تفاضل‌گیری افقی قرار گیرد؛ مقدار ۱ هر سطر اسکن را مجبور می‌کند بدون تفاضل‌گیری کدگذاری شود. به‌طور پیش‌فرض، pamtotiff یک فایل TIFF با ترتیب پر کردن msb-to-lsb ایجاد می‌کند. گزینه‌های -msb2lsb و -lsb2msb برای لغو حالت پیش‌فرض و تنظیم ترتیب پر کردن مورد استفاده در ایجاد فایل به کار می‌روند.

در برخی کتابخانه‌های قدیمی‌تر TIFF، گزینه -lzw کار نمی‌کند زیرا کتابخانه TIFF فشرده‌سازی LZW را انجام نمی‌دهد. دلیل این امر نگرانی‌های مربوط به حق اختراع Unisys روی LZW بود که در آن زمان نافذ بود. البته در کتابخانه‌های بسیار قدیمی TIFF، گزینه -lzw کار می‌کند چون توزیع‌کنندگان کتابخانه هنوز نسبت به موضوع حق اختراع حساس نشده بودند.

گزینه -flate فشرده‌سازی "flate" را انتخاب می‌کند که همان فشرده‌سازی بدون حق اختراع رایج در دنیای یونیکس است و توسط کتابخانه "Z" پیاده‌سازی شده است. این همان روشی است که در قالب PNG استفاده می‌شود.

فشرده‌سازی فکس (Fax Compression)

اگر داده‌های دوسطحی (مانند PBM) دارید، می‌توانید یک TIFF ایجاد کنید که از همان روش فشرده‌سازی دستگاه‌های فکس استفاده کند. برای اطلاعات بیشتر در مورد این طرح‌های فشرده‌سازی، صفحه Fax Format(1) را ببینید.

تمام این قالب‌ها به استانداردهای دستگاه‌های فکس ITU گروه ۳ و گروه ۴ مرتبط هستند.

گزینه -g3 فشرده‌سازی MH یا MR را انتخاب می‌کند: با گزینه اضافی -2d حالت MR، و بدون آن حالت MH. گزینه -g4 فشرده‌سازی MMR را انتخاب می‌کند. نام این گزینه‌ها کمی قدیمی و شاید نامناسب است، اما با مشخصات استاندارد TIFF همخوانی دارد.

روش MMR نسبت به دو روش دیگر دارای نرخ فشرده‌سازی بهتری است.

گزینه -fill مشخص می‌کند که در فشرده‌سازی MH یا MR، هر سطر اسکن کدگذاری‌شده باید تا مرز بایت با صفر پر شود.

گزینه‌های -2d و -fill تنها همراه با -g3 معنادار هستند.

گزینه‌های -msb2lsb و lsb2msb ترتیب پر کردن را کنترل می‌کنند.

ترتیب پر کردن، ترتیبی است که پیکسل‌ها در صورت وجود چند پیکسل در هر بایت، در بایت‌های شطرنجی TIFF بسته‌بندی می‌شوند. ترتیب msb-to-lsb بدان معناست که ستون‌های سمت چپ‌تر در بیت‌های پرارزش‌تر بایت در تصویر TIFF قرار می‌گیرند. با این حال، سردرگمی زیادی درباره معنای ترتیب پر کردن وجود دارد. برخی تصور می‌کنند این گزینه مشخص می‌کند که آیا مقادیر نمونه‌های ۱۶ بیتی در تصویر TIFF به صورت little-endian هستند یا big-endian. این کاملاً اشتباه است (ترتیب بایتی اعداد صحیح در یک تصویر TIFF توسط عدد جادویی یا magic number تصویر مشخص می‌شود). با وجود این، هم ImageMagick و هم نسخه‌های قدیمی‌تر Netpbm در گذشته چنین برداشتی را پیاده‌سازی کرده بودند (۲۰۰۱/۰۹/۰۶).

اگر تصویر فاقد پیکسل‌های زیربایتی (sub-byte) باشد، این گزینه‌ها اثری جز تنظیم مقدار تگ FILLORDER در تصویر TIFF ندارند (که ممکن است برای برنامه‌هایی که این تگ را به نمونه‌های ۱۶ بیتی ارتباط می‌دهند مفید باشد).

گزینه -color به pamtotiff می‌گوید در صورت ورودی PPM، یک تصویر TIFF رنگی (در برابر مقیاس خاکستری) تولید کند، حتی اگر تصویر فقط حاوی سایه‌هایی از خاکستری باشد. بدون این گزینه، اگر ورودی PPM باشد و فقط شامل سایه‌های خاکستری و حداکثر ۲۵۶ سایه باشد، pamtotiff یک تصویر TIFF با مقیاس خاکستری تولید می‌کند؛ در غیر این صورت، خروجی TIFF رنگی ایجاد خواهد کرد. برای ورودی PBM و PGM، برنامه pamtotiff همیشه خروجی TIFF با مقیاس خاکستری تولید می‌کند و این گزینه هیچ اثری ندارد.

گزینه -color می‌تواند مانع از آن شود که pamtotiff دو بار فایل ورودی را پیمایش کند و بدین ترتیب سرعت و مصرف حافظه را بهبود می‌بخشد. به چندین بار پیمایش (Multiple Passes) مراجعه کنید.

گزینه -truecolor به pamtotiff می‌گوید در صورتی که تصویر خروجی رنگی است، حالت ۲۴ بیتی RGB از خروجی TIFF را تولید کند. بدون این گزینه، pamtotiff یک تصویر TIFF دارای نگاشت رنگ (پالت‌دار) تولید می‌کند مگر آن‌که بیش از ۲۵۶ رنگ وجود داشته باشد (که در حالت اخیر، یک هشدار صادر می‌کند).

گزینه -truecolor می‌تواند مانع از دو بار پیمایش فایل ورودی توسط pamtotiff شود و از این طریق سرعت و مصرف حافظه را بهبود دهد. به چندین بار پیمایش (Multiple Passes) مراجعه کنید.

گزینه‌های -color و -truecolor پیش از Netpbm 9.21 (دسامبر 2001) وجود نداشتند.

اگر pamtotiff یک تصویر TIFF در مقیاس خاکستری تولید کند، این گزینه اثری ندارد.

گزینه‌های -minisblack و -miniswhite تصویر خروجی را وادار می‌کنند که به ترتیب فوتومتریک «حداقل سیاه است» یا «حداقل سفید است» داشته باشد. اگر هیچ‌یک را مشخص نکنید، pamtotiff از «حداقل سیاه است» استفاده می‌کند مگر هنگام استفاده از فشرده‌سازی گروه ۳ یا گروه ۴، که در آن حالت pamtotiff از استانداردهای فکس CCITT پیروی کرده و از «حداقل سفید است» استفاده می‌نماید. این حالت معمولاً به فشرده‌سازی بهتر منجر می‌شود و به طور کلی برای کدگذاری دسطحی ترجیح داده می‌شود. این فوتومتریک‌ها برای تصاویر با مقیاس خاکستری هستند، بنابراین اگر تصویر رنگی باشد این گزینه‌ها نامعتبر خواهند بود (البته تنها در صورتی که واقعاً رنگی باشد؛ برای نمونه با یک تصویر PPM که فقط سایه‌های خاکستری دارد معتبر هستند).

پیش از Netpbm 9.11 (فوریه 2001)، pamtotiff به دلیل یک باگ همیشه «حداقل سیاه است» تولید می‌کرد. در هر دو حالت، pamtotiff تگ تفسیر فوتومتریک را در خروجی TIFF متناسب با فوتومتریکی که واقعاً استفاده شده تنظیم می‌کند.

پیش از Netpbm 10.78 (مارس 2017)، pamtotiff گزینه‌های -miniswhite و -minisblack را حتی با تصاویر رنگی نیز اعمال می‌کرد، و تصاویر TIFF نامعتبری تولید می‌کرد که دارای فوتومتریک مذکور بودند اما صفحات شطرنجی قرمز، سبز و آبی داشتند.

گزینه -indexbits تنها برای تصویر دارای نگاشت رنگ (پالت‌دار) معنا دارد. در این نوع تصویر، شطرنجی حاوی مقادیری است که اندیس‌هایی به جدول رنگ‌ها هستند، و این اندیس‌ها معمولاً فضای کمتری نسبت به توصیف رنگ در جدول اشغال می‌کنند. برنامه pamtotiff می‌تواند اندیس‌های ۱، ۲، ۴ یا ۸ بیتی تولید کند. به‌طور پیش‌فرض از ۸ استفاده می‌کند، زیرا بسیاری از برنامه‌هایی که تصاویر TIFF را تفسیر می‌کنند توانایی پردازش عرض‌های دیگر را ندارند.

اما اگر تعداد کمی رنگ دارید، می‌توانید با مجاز کردن کمتر از ۸ بیت برای هر اندیس از طریق گزینه -indexbits، حجم تصویر خود را به طور محسوسی کاهش دهید. مقدار این گزینه فهرستی با کاما از عرض‌های بیتی مجاز است. برنامه pamtotiff کوچک‌ترین عرض مجازی را انتخاب می‌کند که اجازه اندیس‌گذاری کل جدول رنگ را بدهد. اگر هیچ عرضی پاسخگو نباشد، pamtotiff با خطا مواجه می‌شود. به طور معمول، تنها مقدار کاربردی این گزینه 1,2,4,8 است، زیرا یک برنامه یا تنها عرض ۸ بیت (پیش‌فرض) را می‌فهمد یا همه آن‌ها را.

در یک تصویر TIFF پایه (Baseline TIFF)، بر اساس مشخصات TIFF 6.0 سال ۱۹۹۲، مقادیر ۴ و ۸ تنها عرض‌های معتبر هستند. هیچ استاندارد رسمی دیگری وجود ندارد که سایر مقادیر را مجاز بداند.

این گزینه در ژوئن ۲۰۰۲ افزوده شد. پیش از آن، تنها اندیس‌های ۸ بیتی ممکن بودند.

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

می‌توانید با استفاده از گزینه -tag صراحتاً به pamtotiff بگویید که چنین تگ‌هایی را در خروجی خود بگنجاند. شما فهرستی از انواع و مقادیر تگ‌ها را مشخص می‌کنید و pamtotiff برای هر مورد در فهرست، یک تگ در خروجی قرار می‌دهد.

مقدار -tag فهرستی از تگ‌ها است، مانند این مثال:


    -tag=subfiletype=reducedimage,documentname=Fred,xposition=25

همان‌گونه که مشاهده می‌کنید، این فهرستی از مشخصات تگ‌ها است که با کاما از هم جدا شده‌اند. هر مشخصه تگ شامل یک نام و یک مقدار است که با علامت مساوی از هم جدا شده‌اند. نام، همان نام نوع تگ است (بدون حساسیت به بزرگی و کوچکی حروف). یک جا برای مشاهده نام انواع تگ‌های TIFF، فایل tiff.h کتابخانه TIFF است که در آن برای هر تگ یک ماکرو شامل "TIFF_" به همراه نام تعریف شده است؛ به عنوان نمونه برای نوع تگ SUBFILETYPE، ماکروی TIFF_SUBFILETYPE وجود دارد.

قالب تعیین مقدار برای یک تگ (آنچه پس از علامت مساوی می‌آید) به نوع مقدار آن تگ بستگی دارد:

  • عدد صحیح: یک عدد ده‌دهی
  • عدد ممیز شناور: یک عدد ده‌دهی
  • رشته: یک رشته متنی
  • شمارشی (برای نمونه، تگ 'subfiletype' یک مقدار شمارشی می‌گیرد که مقادیر ممکن آن عبارتند از REDUCEDIMAGE، PAGE و MASK): نام مقدار. می‌توانید نام‌های ممکن را در فایل tiff.h کتابخانه TIFF مشاهده کنید، جایی که برای هر کدام یک ماکرو متشکل از پیشوند به همراه نام مقدار تعریف شده است؛ مثلاً برای مقدار REDUCEDIMAGE از تگ SUBFILETYPE، ماکروی FILETYPE_REDUCEDIMAGE دیده می‌شود.

    قالب TIFF یک شماره یکتا به هر مقدار شمارشی اختصاص می‌دهد و می‌توانید به عنوان روش جایگزین، آن عدد را به صورت ده‌دهی مشخص کنید. این امر زمانی مفید است که از افزونه‌ای از TIFF استفاده می‌کنید که pamtotiff از آن آگاهی ندارد.

اگر نوع تگی را با -tag مشخص کنید که مستقل از محتوای تصویر مبدا PNM و فرآیند تبدیل pamtotiff نباشد (یعنی نوع تگی که pamtotiff به آن علاقه‌مند است)، برنامه با خطا متوقف می‌شود. برای نمونه، نمی‌توانید تگ IMAGEWIDTH را با -tag مشخص کنید، چرا که pamtotiff خودش تگ IMAGEWIDTH را متناسب با عرض واقعی تصویر ایجاد می‌کند.

گزینه -tag در Netpbm 10.31 (دسامبر 2005) اضافه شد.

به فایل خروجی (The Output File) مراجعه کنید.

گزینه -output نام فایل خروجی را تعیین می‌کند. بدون این گزینه، pamtotiff در خروجی استاندارد می‌نویسد.

گزینه -append به pamtotiff دستور می‌دهد که فقط به فایل نام‌برده‌شده در -output الحاق کند؛ نه این‌که آن را بسازد. بدون این گزینه، در صورتی که فایل وجود نداشته باشد برنامه آن را می‌سازد. اما حتی در آن حالت نیز اگر فایل از قبل موجود باشد، برنامه تصویر را به محتوای فعلی فایل اضافه می‌کند (یک فایل TIFF می‌تواند شامل چند تصویر باشد).

گزینه -append بدون تعیین گزینه -output اثری ندارد.

پیش از Netpbm 10.67 (ژوئن 2014)، -append معنای کاملاً متفاوتی داشت: به این معنا بود که تصویر به فایل TIFF خروجی (که در 10.67 همیشه خروجی استاندارد بود) الحاق شود به جای این‌که جایگزین محتوای آن گردد.

گزینه -append در Netpbm 10.27 (مارس 2005) معرفی شد.

می‌توانید از گزینه -rowsperstrip برای تعیین تعداد سطرها (خطوط اسکن) در هر نوار (strip) از داده‌ها در فایل خروجی استفاده کنید. به‌طور پیش‌فرض، در فایل خروجی تعداد سطرها در هر نوار روی مقداری تنظیم می‌شود که تضمین کند هر نوار بیش از ۸ کیلوبایت حجم نخواهد داشت.

تنوع بی‌شماری از قالب TIFF وجود دارد و این برنامه تنها چند مورد از آن‌ها را تولید می‌کند. اگر ورودی یک فایل PBM (تک‌رنگ) یا PGM (مقیاس خاکستری) یا فایل PAM معادل باشد، pamtotiff یک فایل TIFF با مقیاس خاکستری تولید می‌کند. همچنین اگر ورودی PPM (رنگی) یا PAM معادل باشد اما تنها یک رنگ در تصویر وجود داشته باشد، pamtotiff یک فایل با مقیاس خاکستری می‌سازد.

اگر ورودی یک فایل PPM (رنگی) باشد و ۲۵۶ رنگ یا کمتر، اما بیش از ۱ رنگ داشته باشد، pamtotiff یک فایل TIFF با پالت رنگ تولید می‌کند. اگر رنگ‌های بیشتری وجود داشته باشد، pamtotiff یک فایل TIFF تک‌صفحه‌ای RGB (نه RGBA) ایجاد می‌کند. برای ایجاد قالب TIFF تفکیک رنگ مرکب فیروزه‌ای-سرخابی-زرد-سیاه از pnmtotiffcmyk استفاده کنید.

تعداد بیت‌ها در هر نمونه در خروجی TIFF بر اساس مقدار maxval ورودی Netpbm تعیین می‌شود. اگر maxval کمتر از ۲۵۶ باشد، تعداد بیت در هر نمونه خروجی کوچک‌ترین عددی است که می‌تواند maxval را کدگذاری کند. اگر maxval بزرگ‌تر یا مساوی ۲۵۶ باشد، خروجی ۱۶ بیت در هر نمونه خواهد داشت.

مانند اکثر برنامه‌های Netpbm، در صورتی که ورودی تصویری از نوع PAM با نوع تاپل غیر از BLACKANDWHITE، GRAYSCALE یا RGB باشد، عملکرد pamtotiff عمدتاً تعریف‌نشده است. بیشتر توضیحات این راهنما فرض می‌کنند که ورودی چنین PAM خاصی نیست. با وجود این، پردازش تعریف‌شده محدودی برای سایر زیرقالب‌های PAM وجود دارد.

برنامه pamtotiff فرض می‌کند هر تصویر PAM تک‌صفحه‌ای، از نوع BLACKANDWHITE یا GRAYSCALE است (و تفاوتی میان این دو قائل نمی‌شود).

برنامه pamtotiff فرض می‌کند یک PAM با بیش از ۱ صفحه، دارای نوع تاپل RGB است با این تفاوت که به جای ۳ صفحه، آن تعداد صفحه را دارد. pamtotiff واقعاً قرمز، سبز و آبی را نمی‌شناسد، بنابراین هیچ مشکلی با یک فضای رنگی ۲ مؤلفه‌ای یا ۵ مؤلفه‌ای ندارد. قالب TIFF تعداد دلخواهی از مؤلفه‌های رنگ را مجاز می‌داند، بنابراین pamtotiff به سادگی صفحات PAM را مستقیماً به مؤلفه‌های رنگ TIFF نگاشت می‌کند. مشخص نیست که آیا معانی ۵ مؤلفه در یک تصویر TIFF اصلاً استاندارد هستند یا خیر، اما در صورت تمایل این امکان وجود دارد.

توجه داشته باشید که pamtotiff ممکن است تصویری با رنگ واقعی (truecolor) یا تصویری با نگاشت رنگ و تعداد دلخواهی مؤلفه رنگ تولید کند. در حالت رنگ واقعی، داده‌های شطرنجی آن تعداد صفحه را دارند. در حالت نگاشت رنگ، داده‌های شطرنجی طبیعتاً ۱ صفحه دارند، اما جدول رنگ شامل تمامی مؤلفه‌های رنگ است.

رایج‌ترین دلیل برای داشتن صفحات اضافی در یک PAM، نوع تاپل xxx_ALPHA است که نشان می‌دهد بالاترین صفحه، صفحه شفافیت (کانال آلفا) است. حداقل یک کاربر دریافته بود که یک TIFF با یک صفحه اضافی برای شفافیت مفید است.

توجه داشته باشید که تشخیص مقیاس خاکستری روی رنگ‌های N-مؤلفه‌ای عمل می‌کند، بنابراین اگر صفحات شما واقعاً مؤلفه‌های رنگ نیستند، توصیه می‌شود این قابلیت را با گزینه -color غیرفعال نمایید.

برنامه pamtotiff تصویر ورودی را در صورت امکان یک بار، و در غیر این صورت دو بار می‌خواند. این برنامه به دور دوم پیمایش (که البته پیش از دور اصلی انجام می‌شود) نیاز دارد تا رنگ‌های تصویر را تحلیل کرده، یک جدول رنگ (پالت) تولید کند و تعیین نماید که آیا تصویر در مقیاس خاکستری است یا خیر. بنابراین دور دوم پیمایش تنها زمانی رخ می‌دهد که ورودی PPM باشد؛ و شما می‌توانید در این حالت با مشخص کردن هر دو گزینه -truecolor و -color از آن جلوگیری کنید.

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

هنگامی که ورودی از فایلی است که امکان بازپیچی (rewind) و خواندن مجدد آن وجود ندارد، pamtotiff کل تصویر ورودی را در یک فایل موقت می‌خواند که این قابلیت را دارد، و از روی آن فایل کار می‌کند؛ حتی اگر تنها به یک بار پیمایش نیاز داشته باشد.

پیش از Netpbm 9.21 (دسامبر 2001)، برنامه pamtotiff همیشه کل تصویر را در حافظه مجازی بارگذاری می‌کرد و سپس یک، دو یا سه بار از روی نسخه موجود در حافظه عبور می‌کرد. گزینه‌های -truecolor و -color وجود نداشتند. پیمایش‌های حافظه در صورتی که کل تصویر در حافظه فیزیکی واقعی جا نمی‌شد، باعث نقص صفحه (page fault) می‌شد. تصویر در حافظه به طور قابل توجهی حافظه بیشتری (۱۲ بایت به ازای هر پیکسل) نسبت به نسخه ذخیره‌شده در حافظه نهان فایل مصرف می‌کرد.

یک تصویر TIFF ممکن است حاوی اطلاعاتی درباره وضوح تصویر باشد، به این معنی که هر پیکسل در داده‌های شطرنجی در ابعاد واقعی (سانتی‌متر و غیره) چقدر بزرگ است. این اطلاعات در تگ‌های XRESOLUTION، YRESOLUTION و RESOLUTIONUNIT در قالب TIFF قرار دارند. به‌طور پیش‌فرض، pamtotiff هیچ تگی از این نوع را شامل نمی‌شود، اما می‌توانید آن‌ها را با گزینه -tag (یا -tags) مشخص کنید.

همچنین گزینه‌های -xresolution، -yresolution و -resolutionunit وجود دارند، اما آن‌ها منسوخ شده‌اند. پیش از پیدایش -tag (پیش از Netpbm 10.31 در دسامبر 2005)، آن‌ها تنها راهکار بودند.

توجه داشته باشید که تعداد پیکسل‌های موجود در تصویر و میزان اطلاعاتی که هر یک دارند، مستقل از تنظیم تگ‌های وضوح تعیین می‌شوند. تعداد پیکسل‌ها در خروجی برابر با ورودی است، و هر پیکسل حاوی همان اطلاعات است. برای این‌که تگ‌های وضوح شما معنادار باشند، باید با آنچه ورودی PNM را ایجاد کرده است سازگار باشند؛ مثلاً اگر یک اسکنر یک تصویر با پهنای ۱۰ سانتی‌متر را به یک تصویر PNM با پهنای ۱۰۰۰ پیکسل تبدیل کرده است، وضوح افقی شما ۱۰۰ پیکسل بر سانتی‌متر خواهد بود، و اگر تگ XRESOLUTION شما چیز دیگری بگوید، هر برنامه‌ای که تصویر TIFF شما را چاپ کند، تصویر مناسب ۱۰ سانتی‌متری را چاپ نخواهد کرد.

مقدار تگ XRESOLUTION یک عدد اعشاری ممیز شناور است که بیانگر تعداد پیکسل‌ها در هر واحد فاصله در جهت افقی است. گزینه -yresolution مشابه آن برای جهت عمودی است.

واحد فاصله توسط مقدار گزینه RESOLUTIONUNIT تعیین می‌شود. این مقدار می‌تواند INCH، CENTIMETER یا NONE باشد. مقدار NONE یعنی واحد دلخواه یا نامشخص است. این امر می‌تواند بدین معنا باشد که پدیدآورنده و کاربر تصویر توافق جداگانه‌ای بر سر واحد دارند. اما معمولاً صرفاً به این معناست که مقادیر وضوح افقی و عمودی برای هیچ منظوری جز تعیین نسبت تصویر (aspect ratio) قابل استفاده نیستند (زیرا حتی با این‌که واحد دلخواه یا نامشخص است، باید برای هر دو عدد وضوح یکسان باشد).

اگر از گزینه -tag برای مشخص کردن تگ‌های وضوح استفاده نکنید و در عوض از گزینه‌های منسوخ بهره بگیرید، به موارد زیر توجه داشته باشید:

  • اگر گزینه -xresolution را مشخص نکنید، تصویر TIFF حاوی اطلاعات وضوح افقی نخواهد بود. به همین ترتیب برای -yresolution. اگر -resolutionunit را مشخص نکنید، پیش‌فرض اینچ خواهد بود.
  • پیش از Netpbm 10.16 (ژوئن 2003)، گزینه -resolutionunit وجود نداشت و واحد وضوح همواره اینچ بود.

برنامه pamtotiff در ابتدا pnmtotiff نام داشت و ورودی PAM را پشتیبانی نمی‌کرد. این برنامه در Netpbm 10.30 (اکتبر 2005) گسترش یافت و تغییر نام پیدا کرد.

tifftopnm(1), pnmtotiffcmyk(1), pamdepth(1), pamtopnm(1), pam(1)

برگرفته‌شده توسط Jef Poskanzer از ras2tiff.c، که دارای کپی‌رایت (c) ۱۹۹۰ متعلق به Sun Microsystems, Inc است. نویسنده: Patrick J. Naughton (naughton@wind.sun.com).

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

http://netpbm.sourceforge.net/doc/pamtotiff.html
05 April 2017 netpbm documentation