mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-13 01:07:18 +00:00
Add Y flip option
This commit is contained in:
@@ -14,6 +14,7 @@ struct BasisOptions {
|
|||||||
bool mipmap;
|
bool mipmap;
|
||||||
bool srgb_mipmap;
|
bool srgb_mipmap;
|
||||||
bool perceptual;
|
bool perceptual;
|
||||||
|
bool y_flip;
|
||||||
};
|
};
|
||||||
|
|
||||||
thread_local const val Uint8Array = val::global("Uint8Array");
|
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_ktx2_uastc_supercompression = basist::KTX2_SS_ZSTANDARD;
|
||||||
|
|
||||||
params.m_perceptual = opts.perceptual;
|
params.m_perceptual = opts.perceptual;
|
||||||
|
params.m_y_flip = opts.y_flip;
|
||||||
params.m_mip_gen = opts.mipmap;
|
params.m_mip_gen = opts.mipmap;
|
||||||
params.m_mip_srgb = opts.srgb_mipmap;
|
params.m_mip_srgb = opts.srgb_mipmap;
|
||||||
params.m_mip_filter = "box";
|
params.m_mip_filter = "box";
|
||||||
@@ -80,6 +81,7 @@ EMSCRIPTEN_BINDINGS(my_module) {
|
|||||||
.field("compression", &BasisOptions::compression)
|
.field("compression", &BasisOptions::compression)
|
||||||
.field("uastc", &BasisOptions::uastc)
|
.field("uastc", &BasisOptions::uastc)
|
||||||
.field("perceptual", &BasisOptions::perceptual)
|
.field("perceptual", &BasisOptions::perceptual)
|
||||||
|
.field("y_flip", &BasisOptions::y_flip)
|
||||||
.field("mipmap", &BasisOptions::mipmap)
|
.field("mipmap", &BasisOptions::mipmap)
|
||||||
.field("srgb_mipmap", &BasisOptions::srgb_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;
|
quality: number;
|
||||||
compression: number;
|
compression: number;
|
||||||
uastc: boolean;
|
uastc: boolean;
|
||||||
|
y_flip: boolean;
|
||||||
mipmap: boolean;
|
mipmap: boolean;
|
||||||
srgb_mipmap: boolean;
|
srgb_mipmap: boolean;
|
||||||
perceptual: 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
|
// Copy over options the form doesn't currently care about, eg arithmetic
|
||||||
...this.props.options,
|
...this.props.options,
|
||||||
uastc: inputFieldChecked(form.uastc, options.uastc),
|
uastc: inputFieldChecked(form.uastc, options.uastc),
|
||||||
|
y_flip: inputFieldChecked(form.y_flip, options.y_flip),
|
||||||
perceptual: inputFieldChecked(form.perceptual, options.perceptual),
|
perceptual: inputFieldChecked(form.perceptual, options.perceptual),
|
||||||
mipmap: inputFieldChecked(form.mipmap, options.mipmap),
|
mipmap: inputFieldChecked(form.mipmap, options.mipmap),
|
||||||
srgb_mipmap: inputFieldChecked(form.srgb_mipmap, options.srgb_mipmap),
|
srgb_mipmap: inputFieldChecked(form.srgb_mipmap, options.srgb_mipmap),
|
||||||
@@ -87,6 +88,14 @@ export class Options extends Component<Props, State> {
|
|||||||
Compression:
|
Compression:
|
||||||
</Range>
|
</Range>
|
||||||
</div>
|
</div>
|
||||||
|
<label class={style.optionToggle}>
|
||||||
|
Flip Y Axis
|
||||||
|
<Checkbox
|
||||||
|
name="y_flip"
|
||||||
|
checked={options.y_flip}
|
||||||
|
onChange={this.onChange}
|
||||||
|
/>
|
||||||
|
</label>
|
||||||
<label class={style.optionReveal}>
|
<label class={style.optionReveal}>
|
||||||
<Revealer
|
<Revealer
|
||||||
checked={showAdvanced}
|
checked={showAdvanced}
|
||||||
|
|||||||
@@ -24,4 +24,5 @@ export const defaultOptions: EncodeOptions = {
|
|||||||
mipmap: false,
|
mipmap: false,
|
||||||
srgb_mipmap: false,
|
srgb_mipmap: false,
|
||||||
perceptual: true,
|
perceptual: true,
|
||||||
|
y_flip: false,
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user