diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 9c70bde..db16f4e 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/apng_library/build.gradle b/apng_library/build.gradle index 0ef1836..9e174f7 100644 --- a/apng_library/build.gradle +++ b/apng_library/build.gradle @@ -8,7 +8,7 @@ android { minSdkVersion 21 targetSdkVersion 28 versionCode 1 - versionName "1.0.9" + versionName "1.0.9-beta" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/apng_library/src/main/java/oupson/apng/imageUtils/BitmapDiffCalculator.kt b/apng_library/src/main/java/oupson/apng/imageUtils/BitmapDiffCalculator.kt index d9f3559..80eacaa 100644 --- a/apng_library/src/main/java/oupson/apng/imageUtils/BitmapDiffCalculator.kt +++ b/apng_library/src/main/java/oupson/apng/imageUtils/BitmapDiffCalculator.kt @@ -4,9 +4,7 @@ import android.graphics.Bitmap import android.graphics.Canvas import android.graphics.Color import android.graphics.Paint -import androidx.annotation.ColorInt import oupson.apng.utils.Utils -import java.util.* // TODO Work on this class class BitmapDiffCalculator(firstBitmap: Bitmap, secondBitmap : Bitmap) { @@ -67,52 +65,4 @@ class BitmapDiffCalculator(firstBitmap: Bitmap, secondBitmap : Bitmap) { val btm = Bitmap.createBitmap(difBitmap, xOffset, yOffset, width - xOffset, height - yOffset) res = btm } - - fun Bitmap.trim(@ColorInt color: Int = Color.TRANSPARENT): Bitmap { - - var top = height - var bottom = 0 - var right = width - var left = 0 - - var colored = IntArray(width, { color }) - var buffer = IntArray(width) - - for (y in bottom until top) { - getPixels(buffer, 0, width, 0, y, width, 1) - if (!Arrays.equals(colored, buffer)) { - bottom = y - break - } - } - - for (y in top - 1 downTo bottom) { - getPixels(buffer, 0, width, 0, y, width, 1) - if (!Arrays.equals(colored, buffer)) { - top = y - break - } - } - - val heightRemaining = top - bottom - colored = IntArray(heightRemaining, { color }) - buffer = IntArray(heightRemaining) - - for (x in left until right) { - getPixels(buffer, 0, 1, x, bottom, 1, heightRemaining) - if (!Arrays.equals(colored, buffer)) { - left = x - break - } - } - - for (x in right - 1 downTo left) { - getPixels(buffer, 0, 1, x, bottom, 1, heightRemaining) - if (!Arrays.equals(colored, buffer)) { - right = x - break - } - } - return Bitmap.createBitmap(this, left, bottom, right - left, top - bottom) - } } \ No newline at end of file diff --git a/apng_library/src/main/java/oupson/apng/utils/Utils.kt b/apng_library/src/main/java/oupson/apng/utils/Utils.kt index 4b9ea70..c92f5a9 100644 --- a/apng_library/src/main/java/oupson/apng/utils/Utils.kt +++ b/apng_library/src/main/java/oupson/apng/utils/Utils.kt @@ -20,7 +20,7 @@ class Utils { try { val acTL = byteArrayOf(0x61, 0x63, 0x54, 0x4c) @Suppress("LocalVariableName") val IDAT = byteArrayOf(0x49, 0x44, 0x41, 0x54) - for (i in 0 until byteArray.size) { + for (i in 8 until byteArray.size) { val it = byteArray.copyOfRange(i, i + 4) // if byteArray contain acTL if (it.contentEquals(acTL)) { diff --git a/app-test/src/main/AndroidManifest.xml b/app-test/src/main/AndroidManifest.xml index 038ff7d..c2db422 100644 --- a/app-test/src/main/AndroidManifest.xml +++ b/app-test/src/main/AndroidManifest.xml @@ -34,7 +34,8 @@ - + \ No newline at end of file diff --git a/app-test/src/main/java/oupson/apngcreator/MainActivity.kt b/app-test/src/main/java/oupson/apngcreator/MainActivity.kt index a9ead9c..a20ca8d 100644 --- a/app-test/src/main/java/oupson/apngcreator/MainActivity.kt +++ b/app-test/src/main/java/oupson/apngcreator/MainActivity.kt @@ -4,7 +4,6 @@ import android.graphics.Color import android.graphics.drawable.GradientDrawable import android.os.Bundle import android.text.Html -import android.util.Log import android.view.View import android.widget.Toolbar import androidx.appcompat.app.AppCompatActivity @@ -22,16 +21,12 @@ import org.jetbrains.anko.sdk27.coroutines.onSeekBarChangeListener import oupson.apng.ApngAnimator import oupson.apng.loadApng - class MainActivity : AppCompatActivity() { - - - - lateinit var animator: ApngAnimator - lateinit var tool : Toolbar + private lateinit var animator: ApngAnimator + private lateinit var tool : Toolbar // val imageUrl = "http://oupson.oupsman.fr/apng/bigApng.png" - // val imageUrl = "https://metagif.files.wordpress.com/2015/01/bugbuckbunny.png" - val imageUrl = "http://orig06.deviantart.net/7812/f/2012/233/7/5/twilight_rapidash_shaded_and_animated_by_tamalesyatole-d5bz7hd.png" + private val imageUrl = "https://metagif.files.wordpress.com/2015/01/bugbuckbunny.png" + // val imageUrl = "http://orig06.deviantart.net/7812/f/2012/233/7/5/twilight_rapidash_shaded_and_animated_by_tamalesyatole-d5bz7hd.png" // val imageUrl = "https://raw.githubusercontent.com/tinify/iMessage-Panda-sticker/master/StickerPackExtension/Stickers.xcstickers/Sticker%20Pack.stickerpack/panda.sticker/panda.png" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -48,18 +43,14 @@ class MainActivity : AppCompatActivity() { backgroundColor = Color.BLACK tool = toolbar { id = View.generateViewId() - title = Html.fromHtml("MainActivity") + title = Html.fromHtml("MainActivity", Html.FROM_HTML_MODE_LEGACY) inflateMenu(R.menu.main_menu) onMenuItemClick { item -> - Log.e("lll", "Click") when (item!!.itemId) { R.id.action_open_create_activity -> { - Log.e("lll", "Click") startActivity() finish() - true } - else -> false } } }.lparams { @@ -76,7 +67,6 @@ class MainActivity : AppCompatActivity() { height = wrapContent } - constraintLayout { val pauseButton = button("pause") { id = View.generateViewId() @@ -103,11 +93,10 @@ class MainActivity : AppCompatActivity() { max = 200 progress = 10 onSeekBarChangeListener { - onProgressChanged { seekBar, progressValue, fromUser -> } - onStartTrackingTouch { seekBar -> } + onProgressChanged { _, _, _ -> } + onStartTrackingTouch { } onStopTrackingTouch { seekBar -> - Log.e("TAG", (seekBar!!.progress.toFloat() / 100f).toString()) - animator.speed = (seekBar!!.progress.toFloat() / 100f) + animator.speed = (seekBar?.progress?.toFloat() ?: 100f / 100f) } } }.lparams( @@ -123,7 +112,7 @@ class MainActivity : AppCompatActivity() { ) val imageView = imageView { id = View.generateViewId() - animator = this.loadApng(R.raw.bugbuckbunny).apply { + animator = this.loadApng(imageUrl).apply { onLoaded { setOnAnimationLoopListener { // Log.e("app-test", "onLoop")