PFM Format Description(5) File Formats Manual PFM Format Description(5)

PFM - قالب فایل تصویر گرافیکی PFM

این سند قالب فایل تصویر گرافیکی PFM را همان‌گونه که توسط مبدل‌های Netpbm یعنی pamtopfm(1) و pfmtopam(1) درک می‌شود، شرح می‌دهد.

چندین قالب مشابه در جهان با نام PFM شناخته می‌شوند که هیچ‌کدام به‌طور رسمی و مرجع مستندسازی نشده‌اند. قالبی که در اینجا توضیح داده شده، قالبی است که Bryan Henderson از برنامه‌ای که در جایی یافته بود و با قالب "PFM" کار می‌کرد، استخراج نموده است. به‌نظر می‌رسد این قالب همان قالبی است که Gimp آن را PFM می‌نامد.

قالب مهم دیگر PFM توسط Adobe Photoshop استفاده می‌شود و به‌نظر می‌رسد کاملاً با این قالب یکسان است، با این تفاوت که سطرها در نسخه Adobe از بالا به پایین مرتب شده‌اند. اگر تصاویر را بین سیستم‌هایی که از این دو قالب استفاده می‌کنند جابه‌جا کنید، کار خواهد کرد با این تفاوت که تصویر شما وارونه می‌شود. می‌توانید این مورد را با pamflip -topbottom جبران کنید.

قالب PFM از قالب‌های Netpbm الهام گرفته شده است و شباهت‌های زیادی با آن‌ها دارد. با این حال، یک قالب رسمی Netpbm نیست. هدف آن با اهداف قالب‌های Netpbm هم‌راستا نمی‌باشد.

یک تصویر PFM جریانی از بایت‌ها است. این جریان از یک سرآیند (header) تشکیل شده که بلافاصله پس از آن یک رستر (raster) قرار دارد. این دو بخش در ادامه شرح داده شده‌اند. هیچ جداکننده‌ای قبل یا بعد از بخش‌های شرح‌داده‌شده وجود ندارد.

سرآیند PFM شامل ۳ «خط» متوالی از متن ASCII است. پس از هر خط یک نویسه فاصله‌گذار (whitespace) قرار دارد. این نویسه معمولاً یک نویسه خط جدید (newline) است و از این رو اصطلاح «خط» به کار می‌رود، اما الزامی بر این موضوع نیست.

دستور pamtopfm در PFM تولیدی خود از خط جدید استفاده می‌کند.

سطر شناسه (Identifier Line)

سطر شناسه شامل نویسه‌های "PF" یا "Pf" است. PF به این معنی است که تصویر یک PFM رنگی است. Pf نشان می‌دهد که تصویر یک PFM در مقیاس خاکستری (grayscale) است.

سطر ابعاد (Dimensions Line)

سطر ابعاد شامل دو عدد صحیح ده‌دهی مثبت است که با یک فاصله از هم جدا شده‌اند. اولی عرض تصویر و دومی ارتفاع آن است. هر دو بر حسب پیکسل هستند.

ضریب مقیاس / ترتیب بایت‌ها (Scale Factor / Endianness)

سطر ضریب مقیاس / ترتیب بایت‌ها سطری نامتعارف است که اطلاعات ترتیب بایت‌ها (endianness) را در یک تعریف در غیر این صورت معقول از مقیاس می‌گنجاند. این سطر شامل یک عدد ده‌دهی غیرصفر است که لزوماً یک عدد صحیح نیست. اگر عدد منفی باشد، به این معنی است که رستر PFM به‌صورت little endian (ترتیب بایت کم‌ارزش) است؛ در غیر این صورت big endian (ترتیب بایت پرارزش) خواهد بود. مقدار مطلق این عدد، ضریب مقیاس تصویر است.

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

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

نکته: این چینش برعکس قالب‌های Netpbm است که سطرها را از بالا به پایین مرتب می‌کنند. همچنین برعکس قالبی است که Adobe Photoshop آن را PFM می‌نامد. برای اطلاعات بیشتر در مورد این تفاوت به بخش مقدمه مراجعه کنید.

هر پیکسل شامل ۱ یا ۳ نمونه است که بدون هیچ‌گونه جداکننده‌ای یکی پس از دیگری بسته‌بندی شده‌اند. ۱ نمونه برای PFM در مقیاس خاکستری و ۳ نمونه برای PFM رنگی (سطر شناسه سرآیند PFM را ببینید).

هر نمونه شامل ۴ بایت متوالی است. این بایت‌ها نمایانگر یک رشته ۳۲ بیتی هستند که با توجه به سطر Scale Factor / Endianness در سرآیند PFM، در قالب big endian یا little endian ذخیره شده‌اند. این رشته یک کد عدد ممیز شناور ۳۲ بیتی IEEE است. از آنجا که این قالب همان قالبی است که بیشتر پردازنده‌ها و کامپایلرها استفاده می‌کنند، معمولاً می‌توانید پس از مدیریت تفاوت ترتیب بایت‌ها، به برنامه اجازه دهید مستقیماً از بایت‌ها به‌عنوان یک عدد ممیز شناور استفاده کند.

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

http://netpbm.sourceforge.net/doc/pfm.html
27 February 2024 netpbm documentation