mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-11 16:26:20 +00:00
Add Y flip option
This commit is contained in:
@@ -14,6 +14,7 @@ struct BasisOptions {
|
||||
bool mipmap;
|
||||
bool srgb_mipmap;
|
||||
bool perceptual;
|
||||
bool y_flip;
|
||||
};
|
||||
|
||||
thread_local const val Uint8Array = val::global("Uint8Array");
|
||||
@@ -49,7 +50,7 @@ val encode(std::string image_in, int image_width, int image_height, BasisOptions
|
||||
params.m_ktx2_uastc_supercompression = basist::KTX2_SS_ZSTANDARD;
|
||||
|
||||
params.m_perceptual = opts.perceptual;
|
||||
|
||||
params.m_y_flip = opts.y_flip;
|
||||
params.m_mip_gen = opts.mipmap;
|
||||
params.m_mip_srgb = opts.srgb_mipmap;
|
||||
params.m_mip_filter = "box";
|
||||
@@ -80,6 +81,7 @@ EMSCRIPTEN_BINDINGS(my_module) {
|
||||
.field("compression", &BasisOptions::compression)
|
||||
.field("uastc", &BasisOptions::uastc)
|
||||
.field("perceptual", &BasisOptions::perceptual)
|
||||
.field("y_flip", &BasisOptions::y_flip)
|
||||
.field("mipmap", &BasisOptions::mipmap)
|
||||
.field("srgb_mipmap", &BasisOptions::srgb_mipmap);
|
||||
|
||||
|
||||
1
codecs/basis/enc/basis_enc.d.ts
vendored
1
codecs/basis/enc/basis_enc.d.ts
vendored
@@ -2,6 +2,7 @@ export interface EncodeOptions {
|
||||
quality: number;
|
||||
compression: number;
|
||||
uastc: boolean;
|
||||
y_flip: boolean;
|
||||
mipmap: boolean;
|
||||
srgb_mipmap: boolean;
|
||||
perceptual: boolean;
|
||||
|
||||
Binary file not shown.
@@ -47,6 +47,7 @@ export class Options extends Component<Props, State> {
|
||||
// Copy over options the form doesn't currently care about, eg arithmetic
|
||||
...this.props.options,
|
||||
uastc: inputFieldChecked(form.uastc, options.uastc),
|
||||
y_flip: inputFieldChecked(form.y_flip, options.y_flip),
|
||||
perceptual: inputFieldChecked(form.perceptual, options.perceptual),
|
||||
mipmap: inputFieldChecked(form.mipmap, options.mipmap),
|
||||
srgb_mipmap: inputFieldChecked(form.srgb_mipmap, options.srgb_mipmap),
|
||||
@@ -87,6 +88,14 @@ export class Options extends Component<Props, State> {
|
||||
Compression:
|
||||
</Range>
|
||||
</div>
|
||||
<label class={style.optionToggle}>
|
||||
Flip Y Axis
|
||||
<Checkbox
|
||||
name="y_flip"
|
||||
checked={options.y_flip}
|
||||
onChange={this.onChange}
|
||||
/>
|
||||
</label>
|
||||
<label class={style.optionReveal}>
|
||||
<Revealer
|
||||
checked={showAdvanced}
|
||||
|
||||
@@ -24,4 +24,5 @@ export const defaultOptions: EncodeOptions = {
|
||||
mipmap: false,
|
||||
srgb_mipmap: false,
|
||||
perceptual: true,
|
||||
y_flip: false,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user