From f658f9abe04896cbce6590bae0783836f4e59f74 Mon Sep 17 00:00:00 2001 From: Gauthier Roebroeck Date: Mon, 26 Apr 2021 17:18:10 +0800 Subject: [PATCH] fix: replace java webp library the replacement is much faster, especially on page analysis it's almost as fast as the native library --- komga/build.gradle.kts | 6 +++--- komga/libs/webp-imageio-decoder-plugin-0.2.jar | Bin 63060 -> 0 bytes .../infrastructure/image/ImageConverter.kt | 12 ++++++++++-- 3 files changed, 13 insertions(+), 5 deletions(-) delete mode 100644 komga/libs/webp-imageio-decoder-plugin-0.2.jar diff --git a/komga/build.gradle.kts b/komga/build.gradle.kts index 925c7df2f..ecf086101 100644 --- a/komga/build.gradle.kts +++ b/komga/build.gradle.kts @@ -68,9 +68,9 @@ dependencies { implementation("org.jsoup:jsoup:1.13.1") implementation("net.coobird:thumbnailator:0.4.13") - runtimeOnly("com.twelvemonkeys.imageio:imageio-jpeg:3.6.4") - runtimeOnly("com.twelvemonkeys.imageio:imageio-tiff:3.6.4") - runtimeOnly(files("$projectDir/libs/webp-imageio-decoder-plugin-0.2.jar")) + runtimeOnly("com.twelvemonkeys.imageio:imageio-jpeg:3.7.0") + runtimeOnly("com.twelvemonkeys.imageio:imageio-tiff:3.7.0") + runtimeOnly("com.twelvemonkeys.imageio:imageio-webp:3.7.0") implementation("com.github.gotson:webp-imageio:0.2.0") // support for jpeg2000 runtimeOnly("com.github.jai-imageio:jai-imageio-jpeg2000:1.4.0") diff --git a/komga/libs/webp-imageio-decoder-plugin-0.2.jar b/komga/libs/webp-imageio-decoder-plugin-0.2.jar deleted file mode 100644 index 9fa29e38d0e850bab78a6149b1518a714e75a965..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63060 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 Sza;$SRDZerLnsOi%zpru=rKD0 diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/image/ImageConverter.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/image/ImageConverter.kt index 6c8cdc80a..a97e87b66 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/image/ImageConverter.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/image/ImageConverter.kt @@ -23,8 +23,16 @@ class ImageConverter { init { val registry = IIORegistry.getDefaultInstance() - val nativeWebp = registry.getServiceProviderByClass(Class.forName("com.luciad.imageio.webp.WebPImageReaderSpi")) as ImageReaderSpi? - val javaWebp = registry.getServiceProviderByClass(Class.forName("net.sf.javavp8decoder.imageio.WebPImageReaderSpi")) as ImageReaderSpi? + val nativeWebp = try { + registry.getServiceProviderByClass(Class.forName("com.luciad.imageio.webp.WebPImageReaderSpi")) + } catch (e: Exception) { + null + } as ImageReaderSpi? + val javaWebp = try { + registry.getServiceProviderByClass(Class.forName("com.twelvemonkeys.imageio.plugins.webp.WebPImageReaderSpi")) + } catch (e: Exception) { + null + } as ImageReaderSpi? if (nativeWebp != null) { if (!WebP.loadNativeLibrary()) {