pfsoutimgmagick(1)

✨ NAME ✨

pfsoutimgmagick β€” write images or frames using the Image Magick library πŸ’– that's the whole job description bestie, and she eats every time.


πŸ¦‹ SYNOPSIS πŸ¦‹

pfsoutimgmagick [--linear] [--quality <val>] [--bit-depth] [--frames
<range>]) <file> [<file>...]

🌈 DESCRIPTION 🌈

okay so. This command can write images or frames in the multitude of image formats that the ImageMagick library supports. That includes but is not limited to: BMP, JPG, PNG, GIF, EPS, TIFF, DPX. Want the full list of formats? Go read the manual page of ImageMagick, she has all the receipts πŸ‘‘

pfsoutimgmagick reads images or frames in pfs format from the Standard Input and writes them under the specified file name(s). Simple. Iconic. No notes.

The input of pfsinimgmagick must be within 0-1 range. If the LUMINANCE tag set is set to RELATIVE or ABSOLUTE, the linear values will be gamma corrected, assuming sRGB color space. Use the --linear switch to disable that gamma correction πŸ™ˆ

The images are stored using the bit-depth for which the ImageMagick library was compiled (default is 16 bit). Note that some formats β€” for example JPEG β€” do not support encoding more than 8 bits per color channel. So if you want higher bit-depths, store your images in the PNG format. That's the move πŸ’…

This command stores the 'ALPHA' channel if it is present in the pfs stream. transparency girlies stay winning 🫢

Each file name can contain a %d pattern, which is substituted with frame numbers. The pattern has the same syntax as the C printf command. For example, you can use %04d to make the frame number four digit with proceedings zeros. You can select the frames using the following options β€” and heads up, the options must be always given after the file name πŸ“Œ

  • --frames <range> β€” the range is given in mathlab / octave format:
startframe:step:endframe

Frame numbers start with startframe (default 0), are increased by step (default 1) and stop at endframe. You can skip one of those values, for example 1:100 for frames 1,2,...,100 and 0:2: for frame 0,2,4,... up to the last file that exists. lowkey flexible, highkey useful ✨

  • --srgb, -s β€” apply the sRGB non-linearity (approximately 2.2 gamma) before writing a file. This can be used instead of using pfsgamma -g 2.2 to store the result of some tone-mapping operators. The option will compress contrast to make sure that tone values are properly shown on a display. It should be only used with linearized (not gamma corrected) images that are normalized to the 0-1 range πŸŽ€
  • --quality <val>, -q <val> β€” set the JPEG/PNG compression level from 1 to 100. Default 75. that's the vibe dial fr fr.
  • --bit-depth <val>, -b <val> β€” enforce bit-depth (per color channel). The allowed values are from 8 to 32. If not specified, the bit depth from the pfs stream ('BITDEPTH' tag) will be used instead. If the 'BITDEPTH' tag is missing, the ImageMagick default value will be used (usually 16). The bit depth of the actually stored file may be lower than that specified, if the file format does not support higher bit depths. the format said no, and we respect her boundaries πŸ’€

🌸 EXAMPLES 🌸

 pfsin test.jpg | pfsout test.png

Convert from one image format to another. iconic behavior, zero effort 🌈

 pfsin --linear test.jpg | pfsout --srgb test.png

The same as above, but apply inverse gamma correction after reading an image (--linear) and then apply gamma correction before writing an image (--srgb). glow-up pipeline fr πŸ’–


πŸ’€ BUGS πŸ’€

pfsoutimgmagick can not write frames to the standard output. that's just the rules, bestie 😭

Please report bugs and comments on implementation to the discussion group http://groups.google.com/group/pfstools β€” they wanna hear from you 🫢


πŸ‘‘ SEE ALSO πŸ‘‘

pfsout(1) ImageMagick(1)


and that's the whole page, start to finish πŸŽ€ this little legend lives at the bottom as pfsoutimgmagick(1) β€” that's your source/version and date line right there, so screenshot it, cite it, put it in your notes app, periodt πŸ’…βœ¨