Wat is het PGM-bestandsformaat?
.pgm (kort voor Portable Gray Map) is een bestandsformaat dat geassocieerd wordt met Netpbm, een platformonafhankelijke toolkit voor bitmap-graphics.
Wat bevatten PGM-bestanden?
PGM-bestanden slaan 8- of 16-bits grijswaardenafbeeldingen op. Een enkel .pgm-bestand kan meerdere van dergelijke afbeeldingen bevatten. Elke pixel kan een waarde aannemen van 0 (zwart) tot 65 535 (wit).
Hoe worden gegevens opgeslagen in PGM-bestanden?
PGM-bestanden kunnen gegevens opslaan in de volgende varianten:
- platte tekst (bestandsheader met magic number
P2), menselijk leesbare ASCII-codering - binair (bestandsheader met magic number
P5), waarbij ruwe binaire monsters per pixel worden opgeslagen
Beide varianten ondersteunen meerdere aaneengeschakelde afbeeldingen in één bestand. De bestandsheader definieert de breedte, hoogte en de maximale grijswaarde (Maxval). De body van het bestand bevat de monsterwaarden voor elke afbeeldingspixel.
Waar worden PGM-bestanden voor gebruikt?
Een .pgm-bestand is een voorbeeld van de implementatie van de .pnm (Portable Anymap) standaard. PGM-bestanden worden voornamelijk gebruikt als uitwisselingsformaat voor afbeeldingen in beeldbewerking, computer vision-pipelines en grafische toolchains. Naast PGM zijn er andere implementaties in dezelfde familie beschikbaar:
Beveiliging & veiligheid
RISICO: LOWPGM is een passieve, volledig gedocumenteerde rasterafbeelding - header plus pixelgegevens, geen scripts of uitvoerbare inhoud, dus het openen ervan is veilig. De enige praktische waarschuwingen zijn niet-malware gerelateerd: bestanden zijn groot omdat PGM ongecomprimeerd is (converteer naar PNG om ruimte te besparen), en een misvormde of te grote header kan een eenvoudige parser dwingen een enorm buffer toe te wijzen, dus gebruik een onderhouden viewer. Er zijn geen privacyzorgen wat betreft metadata/EXIF, aangezien het formaat deze niet bevat.
Formaatdetails
in een notendopProgramma's die PGM-bestanden openen
Technische details
diepe specificaties| Formaatfamilie | Netpbm PNM-familie, naast .pbm (1-bit bitmap) en .ppm (RGB-kleur) |
| Kleurmodel | Alleen grijswaarden - geen kleurkanalen, geen alfakanaal |
| Kleurdiepte | 8-bit (Maxval 255, 256 grijstinten) of 16-bit (Maxval tot 65 535) |
| Magic number | „P2” (0x50 0x32) voor de ASCII-variant; „P5” (0x50 0x35) voor de binaire variant - bevindt zich op offset 0 |
| MIME-type | image/x-portable-graymap |
| Coderingsvarianten | P2: menselijk leesbare platte ASCII-pixelwaarden; P5: ruwe binaire pixelgegevens - de header is in beide varianten altijd ASCII-tekst |
| Compressie | Geen - pixelmonsters worden ruw en ongecomprimeerd opgeslagen |
| Bytevolgorde | Big-endian voor 16-bits monsters (wanneer Maxval > 255); 8-bits monsters beslaan elk een enkele byte |
| Bytes per monster | 1 byte per pixel wanneer Maxval ≤ 255; 2 big-endian bytes per pixel wanneer Maxval > 255 |
| Headerstructuur | Door witruimte gescheiden ASCII-velden in volgorde: magic number, afbeeldingsbreedte, afbeeldingshoogte, Maxval - gevolgd door een enkel witruimte-scheidingsteken, daarna het pixelraster |
| Ondersteuning voor meerdere afbeeldingen | Meerdere afbeeldingen kunnen opeenvolgend worden samengevoegd binnen één .pgm-bestand (zowel P2- als P5-varianten) |
| Afmetingenlimiet | Geen door het formaat opgelegd maximum; alleen begrensd door het ASCII-integerbereik in de header en het beschikbare geheugen |
| Typische bestandsgrootte | Ongecomprimeerd; schaalt als breedte × hoogte × bytes-per-monster - variërend van kilobytes voor kleine afbeeldingen tot tientallen megabytes voor grote |
| Ontwikkelaar | Jef Poskanzer, voortgekomen uit de Pbmplus-toolkit (later voortgezet als het Netpbm-project) |
| Platformondersteuning | Windows, macOS, Linux, Unix - standaard afgehandeld door Netpbm-tools en ondersteund door de meeste beeldbewerkingsbibliotheken (OpenCV, ImageMagick, GIMP) |
| Uitgebracht | 1988 (Pbmplus toolkit, later Netpbm) |
| Laatste versie | Stable since the 1990s; current Netpbm 10.86+ implements it (no format version bump) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | netpbm.sourceforge.net |
PGM conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over PGM-bestanden.