From 6ebf94d1b6185824d6f279ab8ba3ead471bf596f Mon Sep 17 00:00:00 2001 From: Jake Archibald Date: Thu, 19 Nov 2020 11:35:12 +0000 Subject: [PATCH] Auto edge filter --- src/features/encoders/jxl/client/index.tsx | 47 ++++++++++++++++------ src/features/encoders/jxl/shared/meta.ts | 2 +- 2 files changed, 36 insertions(+), 13 deletions(-) diff --git a/src/features/encoders/jxl/client/index.tsx b/src/features/encoders/jxl/client/index.tsx index 78f3c727..1a98209d 100644 --- a/src/features/encoders/jxl/client/index.tsx +++ b/src/features/encoders/jxl/client/index.tsx @@ -27,6 +27,7 @@ interface State { edgePreservingFilter: number; lossless: boolean; slightLoss: boolean; + autoEdgePreservingFilter: boolean; } const maxSpeed = 7; @@ -48,9 +49,10 @@ export class Options extends Component { effort: maxSpeed - options.speed, quality: options.quality, progressive: options.progressive, - edgePreservingFilter: options.epf, + edgePreservingFilter: options.epf === -1 ? 2 : options.epf, lossless: options.quality === 100, slightLoss: options.lossyPalette, + autoEdgePreservingFilter: options.epf === -1, }; } @@ -86,7 +88,9 @@ export class Options extends Component { speed: maxSpeed - optionState.effort, quality: optionState.lossless ? 100 : optionState.quality, progressive: optionState.progressive, - epf: optionState.edgePreservingFilter, + epf: optionState.autoEdgePreservingFilter + ? -1 + : optionState.edgePreservingFilter, nearLossless: 0, lossyPalette: optionState.lossless ? optionState.slightLoss : false, }; @@ -112,6 +116,7 @@ export class Options extends Component { edgePreservingFilter, lossless, slightLoss, + autoEdgePreservingFilter, }: State, ) { // I'm rendering both lossy and lossless forms, as it becomes much easier when @@ -152,16 +157,34 @@ export class Options extends Component { Quality: -
- - Edge preserving filter: - -
+ + + {!autoEdgePreservingFilter && ( +
+ + Edge preserving filter: + +
+ )} +
)} diff --git a/src/features/encoders/jxl/shared/meta.ts b/src/features/encoders/jxl/shared/meta.ts index 205280e9..03e797db 100644 --- a/src/features/encoders/jxl/shared/meta.ts +++ b/src/features/encoders/jxl/shared/meta.ts @@ -21,7 +21,7 @@ export const defaultOptions: EncodeOptions = { speed: 4, quality: 75, progressive: false, - epf: 2, + epf: -1, nearLossless: 0, lossyPalette: false, };