0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-02-01 12:16:11 -05:00
This commit is contained in:
Hajime-san 2024-08-21 12:30:20 +09:00
parent 77703e8ba2
commit 22cf2f9bd8
2 changed files with 31 additions and 9 deletions

View file

@ -16,5 +16,5 @@ path = "lib.rs"
[dependencies] [dependencies]
deno_core.workspace = true deno_core.workspace = true
deno_webgpu.workspace = true deno_webgpu.workspace = true
image = { version = "0.25.2", default-features = false, features = ["png","jpeg","bmp","ico","webp","gif"] } image = { version = "0.25.2", default-features = false, features = ["png", "jpeg", "bmp", "ico", "webp", "gif"] }
serde = { workspace = true, features = ["derive"] } serde = { workspace = true, features = ["derive"] }

View file

@ -94,35 +94,50 @@ Deno.test(async function imageBitmapFlipY() {
Deno.test(async function imageBitmapFromBlob() { Deno.test(async function imageBitmapFromBlob() {
const prefix = "tests/testdata/image"; const prefix = "tests/testdata/image";
{ {
const imageData = new Blob([await Deno.readFile(`${prefix}/1x1-red8.png`)], { type: "image/png" }); const imageData = new Blob(
[await Deno.readFile(`${prefix}/1x1-red8.png`)],
{ type: "image/png" },
);
const imageBitmap = await createImageBitmap(imageData); const imageBitmap = await createImageBitmap(imageData);
// @ts-ignore: Deno[Deno.internal].core allowed // @ts-ignore: Deno[Deno.internal].core allowed
// deno-fmt-ignore // deno-fmt-ignore
assertEquals(Deno[Deno.internal].getBitmapData(imageBitmap), new Uint8Array([255, 0, 0, 255])); assertEquals(Deno[Deno.internal].getBitmapData(imageBitmap), new Uint8Array([255, 0, 0, 255]));
} }
{ {
const imageData = new Blob([await Deno.readFile(`${prefix}/1x1-red8.jpeg`)], { type: "image/jpeg" }); const imageData = new Blob(
[await Deno.readFile(`${prefix}/1x1-red8.jpeg`)],
{ type: "image/jpeg" },
);
const imageBitmap = await createImageBitmap(imageData); const imageBitmap = await createImageBitmap(imageData);
// @ts-ignore: Deno[Deno.internal].core allowed // @ts-ignore: Deno[Deno.internal].core allowed
// deno-fmt-ignore // deno-fmt-ignore
assertEquals(Deno[Deno.internal].getBitmapData(imageBitmap), new Uint8Array([254, 0, 0])); assertEquals(Deno[Deno.internal].getBitmapData(imageBitmap), new Uint8Array([254, 0, 0]));
} }
{ {
const imageData = new Blob([await Deno.readFile(`${prefix}/1x1-red8.bmp`)], { type: "image/bmp" }); const imageData = new Blob(
[await Deno.readFile(`${prefix}/1x1-red8.bmp`)],
{ type: "image/bmp" },
);
const imageBitmap = await createImageBitmap(imageData); const imageBitmap = await createImageBitmap(imageData);
// @ts-ignore: Deno[Deno.internal].core allowed // @ts-ignore: Deno[Deno.internal].core allowed
// deno-fmt-ignore // deno-fmt-ignore
assertEquals(Deno[Deno.internal].getBitmapData(imageBitmap), new Uint8Array([255, 0, 0, 255])); assertEquals(Deno[Deno.internal].getBitmapData(imageBitmap), new Uint8Array([255, 0, 0, 255]));
} }
{ {
const imageData = new Blob([await Deno.readFile(`${prefix}/1x1-red8.gif`)], { type: "image/gif" }); const imageData = new Blob(
[await Deno.readFile(`${prefix}/1x1-red8.gif`)],
{ type: "image/gif" },
);
const imageBitmap = await createImageBitmap(imageData); const imageBitmap = await createImageBitmap(imageData);
// @ts-ignore: Deno[Deno.internal].core allowed // @ts-ignore: Deno[Deno.internal].core allowed
// deno-fmt-ignore // deno-fmt-ignore
assertEquals(Deno[Deno.internal].getBitmapData(imageBitmap), new Uint8Array([255, 0, 0, 255])); assertEquals(Deno[Deno.internal].getBitmapData(imageBitmap), new Uint8Array([255, 0, 0, 255]));
} }
{ {
const imageData = new Blob([await Deno.readFile(`${prefix}/1x1-red8.webp`)], { type: "image/webp" }); const imageData = new Blob(
[await Deno.readFile(`${prefix}/1x1-red8.webp`)],
{ type: "image/webp" },
);
const imageBitmap = await createImageBitmap(imageData); const imageBitmap = await createImageBitmap(imageData);
// @ts-ignore: Deno[Deno.internal].core allowed // @ts-ignore: Deno[Deno.internal].core allowed
// deno-fmt-ignore // deno-fmt-ignore
@ -133,11 +148,16 @@ Deno.test(async function imageBitmapFromBlob() {
// [ 255, 0, 0, 127, // [ 255, 0, 0, 127,
// 0, 255, 0, 127, // 0, 255, 0, 127,
// 0, 0, 255, 127 ] // 0, 0, 255, 127 ]
const imageData = new Blob([await Deno.readFile(`${prefix}/1x1-animation-rgba8.webp`)], { type: "image/webp" }); const imageData = new Blob([
await Deno.readFile(`${prefix}/1x1-animation-rgba8.webp`),
], { type: "image/webp" });
await assertRejects(() => createImageBitmap(imageData), TypeError); await assertRejects(() => createImageBitmap(imageData), TypeError);
} }
{ {
const imageData = new Blob([await Deno.readFile(`${prefix}/1x1-red8.ico`)], { type: "image/x-icon" }); const imageData = new Blob(
[await Deno.readFile(`${prefix}/1x1-red8.ico`)],
{ type: "image/x-icon" },
);
const imageBitmap = await createImageBitmap(imageData); const imageBitmap = await createImageBitmap(imageData);
// @ts-ignore: Deno[Deno.internal].core allowed // @ts-ignore: Deno[Deno.internal].core allowed
// deno-fmt-ignore // deno-fmt-ignore
@ -146,7 +166,9 @@ Deno.test(async function imageBitmapFromBlob() {
{ {
// image/x-exr is a known mimetype for OpenEXR // image/x-exr is a known mimetype for OpenEXR
// https://www.digipres.org/formats/sources/fdd/formats/#fdd000583 // https://www.digipres.org/formats/sources/fdd/formats/#fdd000583
const imageData = new Blob([await Deno.readFile(`${prefix}/1x1-red32f.exr`)], { type: "image/x-exr" }); const imageData = new Blob([
await Deno.readFile(`${prefix}/1x1-red32f.exr`),
], { type: "image/x-exr" });
await assertRejects(() => createImageBitmap(imageData), DOMException); await assertRejects(() => createImageBitmap(imageData), DOMException);
} }
}); });