diff --git a/options/processing_options.go b/options/processing_options.go index ad603aa3fe..4df63a6235 100644 --- a/options/processing_options.go +++ b/options/processing_options.go @@ -79,8 +79,11 @@ type DitherOptions struct { SaturationScale float64 NormalizeContrast bool CLAHESize int - OptionsSet01 bool // shorthand for a set of options starting with the 20240506 release + OptionsSet01 bool // shorthand sets OptionsSet02 bool + OptionsSetCam16 bool + OptionsSetHpminde bool + OptionsSetScam bool } type WatermarkOptions struct { @@ -769,6 +772,12 @@ func applyDitherOption(po *ProcessingOptions, args []string) error { po.Dither.OptionsSet01 = true // shorthand for a set of options starting with the 20240506 release case "opts02": po.Dither.OptionsSet02 = true // shorthand for a set of options starting with the 20240510 release + case "optscam16": + po.Dither.OptionsSetCam16 = true + case "optshpminde": + po.Dither.OptionsSetHpminde = true + case "optsscam": + po.Dither.OptionsSetScam = true default: if err := maybeParseNumericDitherOptions(po, arg); err != nil { return err diff --git a/plugins/pushd-dither b/plugins/pushd-dither index 7ebb5d5ef7..2608e040b7 160000 --- a/plugins/pushd-dither +++ b/plugins/pushd-dither @@ -1 +1 @@ -Subproject commit 7ebb5d5ef7543de27ba7cb39d62753d709c445d1 +Subproject commit 2608e040b70b4ffa03858d64c9f7feb7a2088dc1 diff --git a/processing/dither.go b/processing/dither.go index cdaee3b4f4..17f791081c 100644 --- a/processing/dither.go +++ b/processing/dither.go @@ -154,9 +154,7 @@ func shellOutDither(inFile string, po *options.ProcessingOptions) error { cmdArgs = append(cmdArgs, "--pal-meter-13-hack") cmdArgs = append(cmdArgs, "--contrast") cmdArgs = append(cmdArgs, "--shrink-gamut", "1.5") - } - - if po.Dither.OptionsSet02 { + } else if po.Dither.OptionsSet02 { cmdArgs = append(cmdArgs, "--cam16") cmdArgs = append(cmdArgs, "--chroma-lightness") cmdArgs = append(cmdArgs, "--saturation-scale", "1.0") @@ -165,6 +163,33 @@ func shellOutDither(inFile string, po *options.ProcessingOptions) error { cmdArgs = append(cmdArgs, "--contrast") cmdArgs = append(cmdArgs, "--shrink-gamut", "1.5") cmdArgs = append(cmdArgs, "--clip-error") + } else if po.Dither.OptionsSetCam16 { + cmdArgs = append(cmdArgs, "--cam16") + cmdArgs = append(cmdArgs, "--chroma-lightness") + cmdArgs = append(cmdArgs, "--saturation-scale", "1.0") + cmdArgs = append(cmdArgs, "--hull-project") + cmdArgs = append(cmdArgs, "--pal-meter-13") + cmdArgs = append(cmdArgs, "--contrast") + cmdArgs = append(cmdArgs, "--shrink-gamut", "1.5") + cmdArgs = append(cmdArgs, "--clip-error") + } else if po.Dither.OptionsSetHpminde { + cmdArgs = append(cmdArgs, "--contrast") + cmdArgs = append(cmdArgs, "--hull-project") + cmdArgs = append(cmdArgs, "--lut-blue") + cmdArgs = append(cmdArgs, "--lut", "lut_dither/hpminde_rgb.npy") + cmdArgs = append(cmdArgs, "--lut-hue-sat", "lut_dither/hpminde_rgb.hue_sat") + cmdArgs = append(cmdArgs, "--saturation-scale", "1.0") + cmdArgs = append(cmdArgs, "--pal-meter-13") + } else if po.Dither.OptionsSetScam { + cmdArgs = append(cmdArgs, "--scam") + cmdArgs = append(cmdArgs, "--chroma-lightness") + cmdArgs = append(cmdArgs, "--saturation-scale", "1.0") + cmdArgs = append(cmdArgs, "--hull-project") + cmdArgs = append(cmdArgs, "--pal-meter-13") + cmdArgs = append(cmdArgs, "--contrast") + cmdArgs = append(cmdArgs, "--shrink-gamut", "1.5") + cmdArgs = append(cmdArgs, "--clip-error") + cmdArgs = append(cmdArgs, "--project-3d") } cmd := exec.Command("python3", cmdArgs...)