FSTOPGM(1)
π fstopgm β the Fstopgm User Manual, section 1, bestie π
okay so you found yourself a Usenix FaceSaver(tm) file and you're like "what do I even do with this" β say less, I got you. welcome to the fstopgm manual page, section 1 of the general commands, and we're gonna have a time. π
β¨ NAME β¨
fstopgm β convert a Usenix FaceSaver(tm) file into a PGM image
like, that's the whole gig. it takes the FaceSaver thing and gives you a PGM. iconic behavior honestly. π
β¨ SYNOPSIS β¨
fstopgm [fsfile]
one optional argument, that's it, we're low maintenance. π
β¨ DESCRIPTION β¨
first things first: this program is part of Netpbm(1). so you're in good company. π«Ά
fstopgm reads a Usenix FaceSaver(tm) file as input and produces a PGM image as output. so far so good, very demure.
now here's the tea. β FaceSaver(tm) files sometimes have rectangular pixels. and like β fstopgm is not gonna re-scale them into square pixels for you. it said "not my job, but I'll be nice about it." so instead, it will literally hand you the precise pamscale command that'll do the job for you. isn't that the sweetest thing you've ever seen. π
because of that little arrangement, reading a FaceSaver(tm) image is a two-step process. no skipping steps, bestie, this isn't a vibe, it's a pipeline.
Step one β you do this:
fstopgm > /dev/null
this will tell you whether you need to use pamscale. that's it. that's the whole first step. you're basically just asking the program "do I need the thing or not" and it answers. π¦
Step two β then use one of the following pipelines:
fstopgm | pnmnorm
fstopgm | pamscale -whatever | pnmnorm
pick whichever one step one told you to pick. (-whatever is a placeholder, obviously, don't actually type -whatever, I'm begging you. π)
and if you wanna go to PBM instead, you want something more like one of these:
fstopgm | pamenlarge 3 | pnmnorm | pamditherbw
fstopgm | pamenlarge 3 | pamscale <whatever> | pnmnorm | pamditherbw
okay so why are we enlarging. you want to enlarge when you're going to a bitmap, because otherwise you lose information. that's just facts. but β and this is the important part β enlarging by more than 3 does not look good. it's giving blurry. it's giving regrets. don't do it. π
and one more legal-ish moment, we keep it cute but we keep it accurate: FaceSaver is a registered trademark of Metron Computerware Ltd. of Oakland, CA. slay, Oakland. π
β¨ OPTIONS β¨
okay bestie don't get excited, there are no command line options defined specifically for fstopgm. like literally none, it's a minimalist.
but β it does recognize the options common to all programs based on libnetpbm. (See Common Options.) so you're not completely without options in life, just without fstopgm-specific ones. π
β¨ SEE ALSO β¨
go off, related reading:
β¨ AUTHOR β¨
Copyright (C) 1989 by Jef Poskanzer.
shoutout Jef, absolute legend, no notes. π
β¨ DOCUMENT SOURCE β¨
this manual page was generated by the Netpbm tool makeman from HTML source. the master documentation lives at:
http://netpbm.sourceforge.net/doc/fstopgm.html
and that's the whole page, bestie. this was netpbm documentation, dated 06 April 89, from the Fstopgm User Manual, section 1. go convert something gorgeous. π β¨π
π¦ where this page comes from
- debian bookworm: netpbm 2:11.01.00-2 Β· MIT
- debian trixie: netpbm 2:11.10.02-1 Β· MIT
- ubuntu noble: netpbm 2:11.05.02-1.1build1 Β· MIT
- ubuntu resolute: netpbm 2:11.10.02-1build1 Β· MIT
- ubuntu stonking: netpbm 2:11.13.03+ds-2 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms