forked from external-repos/squoosh
Auto edge filter
This commit is contained in:
@@ -27,6 +27,7 @@ interface State {
|
|||||||
edgePreservingFilter: number;
|
edgePreservingFilter: number;
|
||||||
lossless: boolean;
|
lossless: boolean;
|
||||||
slightLoss: boolean;
|
slightLoss: boolean;
|
||||||
|
autoEdgePreservingFilter: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
const maxSpeed = 7;
|
const maxSpeed = 7;
|
||||||
@@ -48,9 +49,10 @@ export class Options extends Component<Props, State> {
|
|||||||
effort: maxSpeed - options.speed,
|
effort: maxSpeed - options.speed,
|
||||||
quality: options.quality,
|
quality: options.quality,
|
||||||
progressive: options.progressive,
|
progressive: options.progressive,
|
||||||
edgePreservingFilter: options.epf,
|
edgePreservingFilter: options.epf === -1 ? 2 : options.epf,
|
||||||
lossless: options.quality === 100,
|
lossless: options.quality === 100,
|
||||||
slightLoss: options.lossyPalette,
|
slightLoss: options.lossyPalette,
|
||||||
|
autoEdgePreservingFilter: options.epf === -1,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,7 +88,9 @@ export class Options extends Component<Props, State> {
|
|||||||
speed: maxSpeed - optionState.effort,
|
speed: maxSpeed - optionState.effort,
|
||||||
quality: optionState.lossless ? 100 : optionState.quality,
|
quality: optionState.lossless ? 100 : optionState.quality,
|
||||||
progressive: optionState.progressive,
|
progressive: optionState.progressive,
|
||||||
epf: optionState.edgePreservingFilter,
|
epf: optionState.autoEdgePreservingFilter
|
||||||
|
? -1
|
||||||
|
: optionState.edgePreservingFilter,
|
||||||
nearLossless: 0,
|
nearLossless: 0,
|
||||||
lossyPalette: optionState.lossless ? optionState.slightLoss : false,
|
lossyPalette: optionState.lossless ? optionState.slightLoss : false,
|
||||||
};
|
};
|
||||||
@@ -112,6 +116,7 @@ export class Options extends Component<Props, State> {
|
|||||||
edgePreservingFilter,
|
edgePreservingFilter,
|
||||||
lossless,
|
lossless,
|
||||||
slightLoss,
|
slightLoss,
|
||||||
|
autoEdgePreservingFilter,
|
||||||
}: State,
|
}: State,
|
||||||
) {
|
) {
|
||||||
// I'm rendering both lossy and lossless forms, as it becomes much easier when
|
// I'm rendering both lossy and lossless forms, as it becomes much easier when
|
||||||
@@ -152,16 +157,34 @@ export class Options extends Component<Props, State> {
|
|||||||
Quality:
|
Quality:
|
||||||
</Range>
|
</Range>
|
||||||
</div>
|
</div>
|
||||||
|
<label class={style.optionInputFirst}>
|
||||||
|
<Checkbox
|
||||||
|
name="autoEdgeFilter"
|
||||||
|
checked={autoEdgePreservingFilter}
|
||||||
|
onChange={this._inputChange(
|
||||||
|
'autoEdgePreservingFilter',
|
||||||
|
'boolean',
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
Auto edge filter
|
||||||
|
</label>
|
||||||
|
<Expander>
|
||||||
|
{!autoEdgePreservingFilter && (
|
||||||
<div class={style.optionOneCell}>
|
<div class={style.optionOneCell}>
|
||||||
<Range
|
<Range
|
||||||
min="0"
|
min="0"
|
||||||
max="3"
|
max="3"
|
||||||
value={edgePreservingFilter}
|
value={edgePreservingFilter}
|
||||||
onInput={this._inputChange('edgePreservingFilter', 'number')}
|
onInput={this._inputChange(
|
||||||
|
'edgePreservingFilter',
|
||||||
|
'number',
|
||||||
|
)}
|
||||||
>
|
>
|
||||||
Edge preserving filter:
|
Edge preserving filter:
|
||||||
</Range>
|
</Range>
|
||||||
</div>
|
</div>
|
||||||
|
)}
|
||||||
|
</Expander>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</Expander>
|
</Expander>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ export const defaultOptions: EncodeOptions = {
|
|||||||
speed: 4,
|
speed: 4,
|
||||||
quality: 75,
|
quality: 75,
|
||||||
progressive: false,
|
progressive: false,
|
||||||
epf: 2,
|
epf: -1,
|
||||||
nearLossless: 0,
|
nearLossless: 0,
|
||||||
lossyPalette: false,
|
lossyPalette: false,
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user