Skip to content

Releases: Kamel-Media/Kamel

v1.0.10_avif (SNAPSHOT)

27 Jan 21:02

Choose a tag to compare

Pre-release
  • Experimental AVIF support (JVM, Android, iOS)
    • Including Android API <31

v1.0.9

22 Jan 20:32

Choose a tag to compare

  • kotlin 2.3.0
  • compose 1.10.0

v1.0.8

19 Sep 17:15

Choose a tag to compare

  • kotlin 2.2.20
  • compose 1.9.0

v1.0.7

11 Jul 16:33

Choose a tag to compare

  • kotlin 2.2.0
  • compose 1.8.2

Fixes

  • #175 Android package namespace build warning

v1.0.6

11 Jul 16:22

Choose a tag to compare

  • kotlin 2.1.21
  • compose 1.8.1

v1.0.5

11 May 11:20

Choose a tag to compare

  • kotlin 2.1.20
  • compose 1.8.0

Fixes

  • #115 kamel-decoder-animated-image Lowers the android minSdk to 21 and returns a runtime error in onFailure if attempting to use on less than android 28

v1.0.3

25 Jan 06:30

Choose a tag to compare

  • kotlin 2.1.0
  • compose 1.7.3

Fixes

v1.0.2

25 Jan 06:27

Choose a tag to compare

  • kotlin 2.1.0
  • compose 1.7.1

v1.0.1

19 Oct 00:04

Choose a tag to compare

  • kotlin 2.0.21
  • compose 1.7.0

v1.0.0

10 Oct 19:14

Choose a tag to compare

v1.0.0 Release!

  • kotlin 2.0.21
  • compose 1.6.11
  • ktor: 3.0.0

v0.x -> v1.x notes:

New

  • #85 WasmJs support!
  • #96 With media.kamel:kamel-image is now bare bones and lets you pick and choose all mappers, fetchers, and decoders to import into your project that are not included in kamel-core.
  • #96 media.kamel:kamel-image-default Includes all includes all packages besides kamel-decoder-svg-batik
  • Adds a FileUrlFetcher to support loading non-resource local files
  • String mapper will now handle file:/// uris: asyncPainterResource("file:///$absolutePath")
  • Adds gif support! #12 with #100 by @luca992
  • Prevent out of memory exceptions for xl images with experimental Image resizing image bitmap decoder (Android only right now) #105 by @luca992
    • To try out add implementation("media.kamel:kamel-decoder-image-bitmap-resizing:1.0.0-beta.6") and add imageBitmapResizingDecoder() to your KamelConfig

Breaking changes

  • Change media.kamel:kamel-image -> media.kamel:kamel-image-default for the same behavior as pre 1.0.0 releases.
  • Old Depreciated methods removed

Depreciated

Setup

Default Setup

Add the dependency to the common source-set or to any platform source-set:

kotlin {
    sourceSets {
        commonMain {
            dependencies {
                implementation("media.kamel:kamel-image-default:1.0.0")
                // no need to specify ktor engines, one is included for each target
                // ...
            }
        }
    }
}

Granular Setup

For a more granular setup, you can choose which modules to include in your project:

kotlin {
    sourceSets {
        commonMain {
            dependencies {
                // core module (required)
                implementation("media.kamel:kamel-image:1.0.0")
                
                // Note: When using `kamel-image` a ktor engine is not included.
                // To fetch remote images you also must ensure you add your own 
                // ktor engine for each target.
                
                // optional modules (choose what you need and add them to your kamel config)
                implementation("media.kamel:kamel-decoder-image-bitmap:1.0.0")
                implementation("media.kamel:kamel-decoder-image-bitmap-resizing:1.0.0") // android only right now
                implementation("media.kamel:kamel-decoder-image-vector:1.0.0")
                implementation("media.kamel:kamel-decoder-svg-batik:1.0.0")
                implementation("media.kamel:kamel-decoder-svg-std:1.0.0")
                implementation("media.kamel:kamel-decoder-animated-image:1.0.0")

                implementation("media.kamel:kamel-fetcher-resources-jvm:1.0.0")
                implementation("media.kamel:kamel-fetcher-resources-android:1.0.0")
                // ...
            }
        }

        jvmMain {
            dependencies {
                // optional modules (choose what you need and add them to your kamel config)
                implementation("media.kamel:kamel-fetcher-resources-jvm:1.0.0")
                // ...
            }
        }

        androidMain {
            dependencies {
                // optional modules (choose what you need and add them to your kamel config)
                implementation("media.kamel:kamel-fetcher-resources-android:1.0.0")
                // ...
            }
        }
    }
}
Granular Setup: Ktor HttpClient Engine

When using kamel-image ktor engines are not included per target.
In order to fetch remote images you also must ensure you add your own ktor engine for each target.
You can find the available engines here.