Fixing lossless slider for webP. Previously you couldn't select "9" :D (#236)

* MozJPEG chroma subsampling and quality (#235)

* Adding chroma subsampling for mozjpeg

* Adding separate chroma quality.

* Preact sometimes removes the inline styles, this fixes it.

* Simplifying chroma subsample

* Adding comments

* Fixing lossless slider for webP. Previously you couldn't select "9" :D

* Destructuring args.
This commit is contained in:
Jake Archibald
2018-11-06 13:47:42 +00:00
committed by GitHub
parent 798f7ee275
commit b9611716fc

View File

@ -26,8 +26,10 @@ 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(
([presetMethod, presetQuality]) => presetMethod === method && presetQuality === quality,
);
if (index !== -1) return index;
// Quality doesn't match one of the presets.
// This can happen when toggling 'lossless'.
@ -45,7 +47,7 @@ export default class WebPEncoderOptions extends Component<Props, State> {
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 +99,7 @@ export default class WebPEncoderOptions extends Component<Props, State> {
name="lossless_preset"
min="0"
max="9"
value={determineLosslessQuality(options.quality)}
value={determineLosslessQuality(options.quality, options.method)}
onInput={this.onChange}
>
Effort: