Portable Graymap (.pgm)
Netpbm StandartTaşınabilir Gri Harita Formatı (PGM), bilgisayarlı görü, robotik, optik denetim ve dijital görüntü işleme algoritmalarında yaygın olarak kullanılan Netpbm ailesinin gri tonlamalı görüntü şartnamesidir.
İncele & Meta Veriler
İşletim sistemleri ve dosya çözümleyicileri, PGM dosyalarını başlangıçtaki ikili bayt dizisini inceleyerek tanımlar:
Bayt Düzeyinde Başlık İmzası (Magic Bytes)
İşletim sistemleri ve dosya çözümleyicileri, PGM dosyalarını başlangıçtaki ikili bayt dizisini inceleyerek tanımlar:
HEX İMZASI (OFSET 0):
50 32 / 50 35ASCII GÖSTERİMİ: P2 / P5
Standardizasyon: Netpbm Library Standard
Teknik Özellikler
| Konteyner Mimarisi | ASCII (P2) or binary (P5) Netpbm format with width, height, maximum gray value, and pixel stream |
| Sıkıştırma | Uncompressed raw binary bytes or human-readable ASCII text numbers |
| Bayt Düzeni (Endianness) | Big-Endian (for 16-bit binary samples in P5 mode) |
| Renk Uzayları | Linear Grayscale or sRGB Grayscale |
| Kanallar ve Yapı | 1 channel grayscale (8-bit or 16-bit precision) |
| Maksimum Boyutlar | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| Şeffaflık | None |
| Akış ve Aşamalı (Streaming & Progressive) | Sequential row-by-row streaming playback |
Teknik Karşılaştırma Matrisi: PGM ve Rakipleri
| Teknik Nitelik | PGM (Güncel) | PBM | PPM | PNG |
|---|---|---|---|---|
| Renk Modu | Gri Tonlama (8-bit / 16-bit) | 1-bit Monokrom | RGB Truecolor (24-bit / 48-bit) | Gri Tonlama, RGB, RGBA |
| Netpbm Kardeşi | PGM (Taşınabilir Gri Harita) | PBM (Taşınabilir İkili Harita) | PPM (Taşınabilir Piksel Haritası) | Netpbm dışı W3C standardı |
| Sihirli Baytlar | P2 (ASCII) / P5 (İkili) | P1 (ASCII) / P4 (İkili) | P3 (ASCII) / P6 (İkili) | ‰PNG.... |
| Sıkıştırma | Sıkıştırılmamış | Sıkıştırılmamış | Sıkıştırılmamış | Kayıpsız Deflate |
Yaygın Bozulma Modları ve Hex Kurtarma Kılavuzu
Görüntü ters veya tamamen patlamış beyaz renkte görüntülenir.
Kök Neden: Başlıkta eşleşmeyen 'maxval' parametresi (ör. maxval 255 yerine 1 olarak bildirilmiş).
Kurtarma: Maxval başlık satırını düzeltin veya File2File Netpbm Dönüştürücü ile dönüştürün.
Güvenlik Analizi ve Ayrıştırıcı Saldırı Vektörleri
PGM kod çözücüleri, arabellek taşmasını önlemek için ayrıştırılan piksel sayı手数lerinin bildirilen boyutlarla eşleştiğini dikkatlice doğrulamalıdır.
Bilinen Saldırı Vektörleri
- Genişlik * yükseklik * (maxval > 255 ? 2 : 1) arabellek tahsisi sırasında tamsayı taşması.
- Bozuk ASCII sayı belirteçleri okunurken arabellek okuma sınırı aşımı.
- Oluşturulan başlık boyutları tarafından tetiklenen devasa bellek ayırma yoluyla hizmet reddi (DoS).
Savunmacı En İyi Uygulamalar:
Tarihsel Kökenler ve Kilometre Taşları
Temel Avantajlar ve Artılar
- Sıfır karmaşıklık: Harici kitaplıklar olmadan C, Python veya WebAssembly'de ayrıştırılması ve yazılması son derece basittir.
- Yerel 16-bit gri tonlama desteği, onu yükseklik haritaları, derinlik haritaları ve termal görüntüleme için ideal kılar.
- ASCII modu (P2), standart metin düzenleyicilerinde ham piksel değerlerinin doğrudan incelenmesine ve işlenmesine izin verir.
Teknik Kısıtlamalar ve Eksiler
- Sıkıştırma yok: PNG gibi sıkıştırılmış formatlara kıyasla büyük dosya boyutları.
- Fiziksel boyutlar, renk uzayları veya coğrafi konum için meta verilerden yoksundur.
- Kesinlikle tek kanallıdır: Renk verilerini veya alfa şeffaflığını depolayamaz.
İlginç Teknik Bilgiler
- OpenCV, ROS (Robot İşletim Sistemi) ve makine vizyonu sistemleri, SLAM navigasyon haritaları için sıklıkla PGM kullanır.
- Oyun geliştiricileri genellikle 16-bit PGM dosyalarını arazi yükseklik haritaları olarak kullanırlar çünkü ham yükseklik verileri sıkıştırılmamıştır ve yüklenmesi kolaydır.
- Başlıktaki 'maxval' parametresi maksimum parlaklık değerini tanımlar (genellikle 8-bit için 255 veya 16-bit için 65535).
Sıkça Sorulan Teknik Sorular
PGM formatı ne için kullanılır?
PGM öncelikle bilgisayarla görü (OpenCV), robotik (ROS harita dosyaları), bilimsel görüntüleme ve 3D arazi yükseklik haritası (heightmap) oluşturmada kullanılır.
P2 ve P5 PGM dosyaları arasındaki fark nedir?
P2, her pikselin yazılı bir sayı olduğu düz ASCII metin formatıdır; P5 ise pikselleri kompakt ikili baytlar olarak saklar.
PGM'yi JPG veya PNG'ye nasıl dönüştürebilirim?
Tam gizlilikle doğrudan tarayıcınızda PNG veya JPG'ye dönüştürmek için PGM dosyanızı File2File.app'e yükleyin.