diff --git a/src/codecs/webp/options.tsx b/src/codecs/webp/options.tsx index 329ac26c..5041acec 100644 --- a/src/codecs/webp/options.tsx +++ b/src/codecs/webp/options.tsx @@ -26,8 +26,8 @@ const losslessPresets:[number, number][] = [ ]; const losslessPresetDefault = 6; -function determineLosslessQuality(quality: number): number { - const index = losslessPresets.findIndex(item => item[1] === quality); +function determineLosslessQuality(quality: number, method: number): number { + const index = losslessPresets.findIndex(item => item[0] === method && item[1] === quality); if (index !== -1) return index; // Quality doesn't match one of the presets. // This can happen when toggling 'lossless'. @@ -45,7 +45,7 @@ export default class WebPEncoderOptions extends Component { const lossless = inputFieldCheckedAsNumber(form.lossless); const { options } = this.props; const losslessPresetValue = inputFieldValueAsNumber( - form.lossless_preset, determineLosslessQuality(options.quality), + form.lossless_preset, determineLosslessQuality(options.quality, options.method), ); const newOptions: EncodeOptions = { @@ -97,7 +97,7 @@ export default class WebPEncoderOptions extends Component { name="lossless_preset" min="0" max="9" - value={determineLosslessQuality(options.quality)} + value={determineLosslessQuality(options.quality, options.method)} onInput={this.onChange} > Effort: