|
 |
The current output related options:
bits_per_color bits_per_colour
grayscale_output greyscale_output
+-f output_file_type (b|c|e|h|j|n|p|t)
+-fb +-fc +-fe +-fh +-fj +-fn +-fp +-ft
+-fbg +-fcg +-feg +-fhg +-fjg +-fng +-fpg +-ftg
+-fn1 +-fn2 +-fn3 +-fn4 +-fn5 +-fn6 +-fn7 +-fn8 +-fn9 +-fn10
+-fn11 +-fn12 +-fn13 +-fn14 +-fn15 +-fn16
+-fp1 +-fp2 +-fp3 +-fp4 +-fp5 +-fp6 +-fp7 +-fp8 +-fp9 +-fp10
+-fp11 +-fp12 +-fp13 +-fp14 +-fp15 +-fp16
+-fng1 +-fng2 +-fng3 +-fng4 +-fng5 +-fng6 +-fng7 +-fng8 +-fng9
+-fng10 +-fng11 +-fng12 +-fng13 +-fng14 +-fng15 +-fng16
+-fpg1 +-fpg2 +-fpg3 +-fpg4 +-fpg5 +-fpg6 +-fpg7 +-fpg8 +-fpg9
+-fpg10 +-fpg11 +-fpg12 +-fpg13 +-fpg14 +-fpg15 +-fpg16
(We are currently cheating in not explicitly supporting a
.pgm format though we write one to .ppm. OK due header encoding)
+-o +-o- output_to_file output_file_name (out directory in this too)
file_gamma (srgb|bt709|bt2020,<float>)
compression 0 or 1, 2-100
(odd RLE compression mode with file type 'c' and 'compression')
(odd ascii vs binary switch with 0 or 1 values for .ppm / .pgm)
+-th dither
dither_method = (b2|b3|b4|bn|bnx|at|bk|d1|d2|fs|jn|s2|s3|st)
+-ua output_alpha
become (punch ones):
+-p punch on|off
+-pa punch_alpha on|off
+-pbpc punch_bits_per_channel integer value only
+-pcm_ punch_compression_method string value only
(ascii,binary,rle)
+-pcv punch_compression_value float value only 2-100
+-pd punch_dither on|off
+-pdm_ punch_dither_method string value only
(b2|b3|b4|bn|bnx|at|bk|d1|d2|fs|jn|s2|s3|st)
+-pgc_ punch_gamma_curve string value only
(srgb|bt709|bt2020|linear|power)
+-pgv punch_gamma_value float value only
+-pgm_ punch_gry_method string value only
(ci111,ci240,ci601,ci709,ci2020)
+-pgs punch_gry_scale on|off
+-pif_ punch_image_format string value only
(bmp,exr,hdr,jpg,png,ppm,tga)
+-ppe_ punch_path_extension string value only
+-ppf_ punch_path_filename string value only
+-ppp_ punch_path_parent string value only
+-pps_ punch_path_stem string value only
+-ps punch_stdout on|off
+-pmd punch_meta_data on|off
+-pmf_ punch_meta_filename string value only
Initially I'll be mapping the above options back to existing
functionality. Setting up for the longer term.
Aims / thinking :
- See display option set for notes on like options.
- The flag combinations are already a bit out of control even though we
are are today writing both .pgm and .ppm formats to .ppm. I've use them
quite a bit and I still get tangled up.
- Looking to add support for new / actual formats (.avif, depth(already
coded in yuqk. Likely written as .pfm but maybe with a .depth
extension), (flesh out .pfm real time capture in yuqk) true .pgm).
- With respect to the bit depth it sank in over time this is not
completely an image format specific thing. The formats which officially
support depth are still encoding the depths in one byte or two bytes
stored fields (excepting .pgm .ppm ascii). A big part of the benefit of
shallower depths is that the compression works much better. This itself
useful while developing scenes / animations and it can be done 'inside'
whatever bit depth(s) the image file supports.
- The punch_path_* set maps directly to c++17, std::filesystem features.
Trying to get to less tangled, still optional, explicit control of
output names.
- Unsure how the meta data stuff might work. I've not thought much about
it. Some options there, but it's just intent/dreaming at present.
- In adding an explicit compression method, making it possible to
support other compression methods available, today, in some image formats.
Code wise the parsing is mostly there, but nothing is wired up.
Bill P.
Post a reply to this message
|
 |