mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-16 18:49:50 +00:00
35 lines
1.2 KiB
HTML
35 lines
1.2 KiB
HTML
<!doctype html>
|
|
<input type="file" id="file">
|
|
<button id="go">Go</button>
|
|
<script type="module">
|
|
import encFactory from "./enc/basis_enc.js";
|
|
import decFactory from "./dec/basis_dec.js";
|
|
|
|
const {file, go} = document.all;
|
|
async function main() {
|
|
const encoder = await encFactory();
|
|
const bitmap = await createImageBitmap(file.files[0]);
|
|
const canvas = new OffscreenCanvas(bitmap.width, bitmap.height);
|
|
const ctx2 = canvas.getContext("2d");
|
|
ctx2.drawImage(bitmap, 0, 0);
|
|
const imgData = ctx2.getImageData(0, 0, canvas.width, canvas.height);
|
|
const result = encoder.encode(imgData.data, imgData.width, imgData.height);
|
|
const decoder = await decFactory();
|
|
console.log({result});
|
|
const resultImgData = decoder.decode(result);
|
|
console.log({resultImgData});
|
|
const cvs = document.createElement("canvas");
|
|
cvs.width = resultImgData.width;
|
|
cvs.height = resultImgData.height;
|
|
const ctx = cvs.getContext("2d");
|
|
ctx.putImageData(resultImgData, 0, 0);
|
|
document.body.append(cvs);
|
|
// const blob = new File([result], "lol.basis");
|
|
// const u = URL.createObjectURL(blob);
|
|
// const a = document.createElement("a")
|
|
// a.download = "lol.basis";
|
|
// a.href = u;
|
|
// a.click();
|
|
}
|
|
go.onclick = main;
|
|
</script> |