From 87afad29ce94ed6d91fbb2766790798b4c8b6d16 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Mon, 8 Aug 2022 16:11:24 +0300 Subject: [PATCH] Update parsers --- app/build.gradle | 6 ++--- .../kotatsu/utils/image/TrimTransformation.kt | 23 ++++++++++++++----- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 09247a335..117ab9138 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -14,8 +14,8 @@ android { applicationId 'org.koitharu.kotatsu' minSdkVersion 21 targetSdkVersion 32 - versionCode 420 - versionName '3.4.8' + versionCode 421 + versionName '3.4.9' generatedDensities = [] testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -79,7 +79,7 @@ afterEvaluate { } } dependencies { - implementation('com.github.KotatsuApp:kotatsu-parsers:e2308214a7') { + implementation('com.github.KotatsuApp:kotatsu-parsers:8709c3dd0c') { exclude group: 'org.json', module: 'json' } diff --git a/app/src/main/java/org/koitharu/kotatsu/utils/image/TrimTransformation.kt b/app/src/main/java/org/koitharu/kotatsu/utils/image/TrimTransformation.kt index 2640060b7..b44281f38 100644 --- a/app/src/main/java/org/koitharu/kotatsu/utils/image/TrimTransformation.kt +++ b/app/src/main/java/org/koitharu/kotatsu/utils/image/TrimTransformation.kt @@ -1,11 +1,15 @@ package org.koitharu.kotatsu.utils.image import android.graphics.Bitmap -import androidx.core.graphics.get +import androidx.annotation.ColorInt +import androidx.core.graphics.* import coil.size.Size import coil.transform.Transformation +import kotlin.math.abs -class TrimTransformation : Transformation { +class TrimTransformation( + private val tolerance: Int = 20, +) : Transformation { override val cacheKey: String = javaClass.name @@ -20,7 +24,7 @@ class TrimTransformation : Transformation { var isColBlank = true val prevColor = input[x, 0] for (y in 1 until input.height) { - if (input[x, y] != prevColor) { + if (!isColorTheSame(input[x, y], prevColor)) { isColBlank = false break } @@ -39,7 +43,7 @@ class TrimTransformation : Transformation { var isColBlank = true val prevColor = input[x, 0] for (y in 1 until input.height) { - if (input[x, y] != prevColor) { + if (!isColorTheSame(input[x, y], prevColor)) { isColBlank = false break } @@ -55,7 +59,7 @@ class TrimTransformation : Transformation { var isRowBlank = true val prevColor = input[0, y] for (x in 1 until input.width) { - if (input[x, y] != prevColor) { + if (!isColorTheSame(input[x, y], prevColor)) { isRowBlank = false break } @@ -71,7 +75,7 @@ class TrimTransformation : Transformation { var isRowBlank = true val prevColor = input[0, y] for (x in 1 until input.width) { - if (input[x, y] != prevColor) { + if (!isColorTheSame(input[x, y], prevColor)) { isRowBlank = false break } @@ -93,4 +97,11 @@ class TrimTransformation : Transformation { override fun equals(other: Any?) = other is TrimTransformation override fun hashCode() = javaClass.hashCode() + + private fun isColorTheSame(@ColorInt a: Int, @ColorInt b: Int): Boolean { + return abs(a.red - b.red) <= tolerance && + abs(a.green - b.green) <= tolerance && + abs(a.blue - b.blue) <= tolerance && + abs(a.alpha - b.alpha) <= tolerance + } } \ No newline at end of file