diff --git a/komga-webui/src/functions/check-webp.ts b/komga-webui/src/functions/check-webp.ts new file mode 100644 index 00000000000..ccb1097cd36 --- /dev/null +++ b/komga-webui/src/functions/check-webp.ts @@ -0,0 +1,20 @@ +// check_webp_feature: +// 'feature' can be one of 'lossy', 'lossless', 'alpha' or 'animation'. +// 'callback(feature, isSupported)' will be passed back the detection result (in an asynchronous way!) +export function checkWebpFeature (feature: string, callback: (feature: string, isSupported: boolean) => void) { + const kTestImages: any = { + lossy: 'UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA', + lossless: 'UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==', + alpha: 'UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==', + animation: 'UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA' + } + const img = new Image() + img.onload = function () { + const result = (img.width > 0) && (img.height > 0) + callback(feature, result) + } + img.onerror = function () { + callback(feature, false) + } + img.src = 'data:image/webp;base64,' + kTestImages[feature] +} diff --git a/komga-webui/src/views/BookReader.vue b/komga-webui/src/views/BookReader.vue index ad7e6ea5ec0..ebf7deaee05 100644 --- a/komga-webui/src/views/BookReader.vue +++ b/komga-webui/src/views/BookReader.vue @@ -205,6 +205,7 @@