پیکسمپ قابل حمل (.ppm)
Netpbm استانداردفرمت پیکسمپ پرتابل (PPM) استاندارد رنگی کامل RGB از خانواده گرافیکی Netpbm است که سادهترین نمایش ممکن و فشردهسازینشده از تصاویر دیجیتال Truecolor را فراهم میکند.
بررسی و فراداده
سیستمعاملها و تحلیلگرهای فایل، فایلهای PPM را با بررسی توالی بایتهای دودویی ابتدایی شناسایی میکنند:
امضای هدر در سطح بایت (Magic Bytes)
سیستمعاملها و تحلیلگرهای فایل، فایلهای PPM را با بررسی توالی بایتهای دودویی ابتدایی شناسایی میکنند:
امضای HEX (آفست 0):
50 33 / 50 36نمایش ASCII: P3 / P6
استانداردسازی: Netpbm Library Standard
مشخصات فنی
| معماری کانتینر | ASCII (P3) or binary (P6) Netpbm format with width, height, maximum color value, and RGB triplet stream |
| فشردهسازی | Uncompressed raw binary bytes or human-readable ASCII text triplets |
| ترتیب بایتها (Endianness) | Big-Endian (for 48-bit 16-bit/channel samples in P6 mode) |
| فضاهای رنگی | Linear RGB or standard sRGB |
| کانالها و ساختار | 3 channels RGB (24-bit or 48-bit Truecolor) |
| حداکثر ابعاد | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| شفافیت مشخصات | None (standard PPM is strictly opaque RGB) |
| استریمینگ و پیشرونده | Sequential row-by-row streaming playback |
ماتریس مقایسه فنی: PPM در برابر رقبا
| ویژگی فنی | PPM (فعلی) | BMP | PNG | TIFF |
|---|---|---|---|---|
| عمق رنگ | Truecolor RGB بیستوچهار بیتی / چهلوهشت بیتی | RGBA از ۱ بیتی تا ۳۲ بیتی | RGBA بیستوچهار بیتی / چهلوهشت بیتی | RGBA از ۸ بیتی تا ۶۴ بیتی |
| همخانواده Netpbm | PPM (Portable Pixmap) | فرمت غیر Netpbm | فرمت W3C غیر Netpbm | فرمت ادوبی غیر Netpbm |
| بایتهای جادویی (Magic Bytes) | P3 (متنی) / P6 (باینری) | BM (0x42 0x4D) | ‰PNG.... | II*\0 یا MM\0* |
| فشردهسازی | فشردهنشده | فشردهنشده / RLE | Deflate بدون افت کیفیت (حدود ۷۰٪ کوچکتر) | LZW / Deflate / Zip |
حالتهای رایج خرابی و راهنمای بازیابی هگز
تصویر با برش اریب کانال رنگی رندر میشود.
علت ریشهای: بایت قطعشده در جریان سهتایی RGB باعث عدم تراز بایتهای بعدی قرمز، سبز و آبی میشود.
بازیابی: تراز مجدد افستهای سهتایی RGB یا تبدیل با استفاده از مبدل Netpbm در File2File.
تحلیل امنیتی و بردارهای حمله تجزیهکننده (Parser)
رمزگشایان PPM باید در برابر سرریز عدد صحیح هنگام محاسبه اندازههای بافر سهتایی RGB محافظت شوند.
بردارهای حمله شناختهشده
- سرریز عدد صحیح در طول تخصیص بافر عرض * ارتفاع * ۳.
- خواندن بیش از حد بافر هنگام خواندن توکنهای متنی ناقص در حالت P3.
- حمله محرومیت از سرویس (DoS) از طریق اعلامیههای تخصیص حافظه بیش از حد.
بهترین روشهای پدافندی:
تاریخچه و نقاط عطف
مزایا و نقاط قوت کلیدی
- سادگی معماری مطلق: به هیچ کتابخانه فشردهسازی برای خواندن، نوشتن یا دستکاری نیاز ندارد.
- حالت متنی (P3) به برنامهنویسان اجازه میدهد مقادیر رنگ خام RGB را مستقیماً در یک ویرایشگر متن مشاهده، کپی و ویرایش کنند.
- فرمت واسط استاندارد مورد استفاده در دورههای گرافیک کامپیوتری دانشگاهی و پروژههای ریاستریسر (Raytracer).
محدودیتها و معایب فنی
- حجم فایلهای بسیار زیاد به دلیل عدم فشردهسازی (یک عکس 4K تقریباً ۲۵ مگابایت است).
- ناکارآمد برای توزیع در وب یا انتقال شبکه.
- عدم پشتیبانی از شفافیت آلفا یا پروفایلهای رنگی جاسازیشده.
نکات فنی جالب
- تقریباً هر دانشجوی علوم کامپیوتری که یک ریاستریسر نرمافزاری مینویسد، اولین خروجی رندر خود را با فرمت PPM ذخیره میکند.
- در فرمت PPM متنی ('P3')، یک تصویر به معنای واقعی کلمه یک فایل متنی از اعداد است: '255 0 0' برای قرمز، '0 255 0' برای سبز و '0 0 255' برای آبی.
- مجموعه Netpbm در اواخر دهه ۱۹۸۰ در نسخههای نوار 4.3BSD Unix توزیع شد.
سوالات فنی متداول
چرا دورههای علوم کامپیوتر از PPM استفاده میکنند؟
به این دلیل که PPM به هیچ کتابخانه خارجی یا الگوریتمهای فشردهسازی پیچیدهای نیاز ندارد و به دانشجویان اجازه میدهد اصول گرافیک کامپیوتری را با ریاضیات خالص و خام پیکسلها یاد بگیرند.
تفاوت بین P3 و P6 PPM چیست؟
فرمت P3 سه تاییهای RGB را به عنوان اعداد متنی ساده ASCII ذخیره میکند، در حالی که P6 سه تاییهای RGB را به صورت بایتهای باینری خام ذخیره میکند.
چگونه میتوانم یک فایل PPM را به JPG یا PNG تبدیل کنم؟
شما میتوانید با استفاده از File2File.app و بدون خروج هیچگونه دادهای از دستگاهتان، فایلهای PPM را مستقیماً در مرورگر خود به PNG یا JPG تبدیل کنید.