Skip to content

Releases: Kamel-Media/Kamel

v1.0.1

19 Oct 00:04
Compare
Choose a tag to compare
  • kotlin 2.0.21
  • compose 1.7.0

v1.0.0

10 Oct 19:14
Compare
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.

v1.0.0-beta.7

10 Oct 19:09
Compare
Choose a tag to compare
v1.0.0-beta.7 Pre-release
Pre-release

Beta 7 notes:

  • Ktor 3.0.0-beta-2: (in maven central with wasm support)
    • Meaning you can remove maven(url = "https://maven.pkg.jetbrains.space/public/p/ktor/eap") as a repository to use the beta in your project.
  • kotlin 2.0.0
  • compose 1.6.11

v0.x -> v1.x notes:

Depreciated

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

New

  • #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

Try it out here:

implementation("media.kamel:kamel-image-default:1.0.0-beta.7")
// no need to specify your own ktor engines, one is included for each target

or to pick and choose features:

implementation("media.kamel:kamel-image:1.0.0-beta.7")

implementation("media.kamel:kamel-decoder-image-bitmap:1.0.0-beta.7")
implementation("media.kamel:kamel-decoder-image-bitmap-resizing:1.0.0-beta.7") // android only right now
implementation("media.kamel:kamel-decoder-image-vector:1.0.0-beta.7")
implementation("media.kamel:kamel-decoder-svg-batik:1.0.0-beta.7")
implementation("media.kamel:kamel-decoder-svg-std:1.0.0-beta.7")
implementation("media.kamel:kamel-decoder-animated-image:1.0.0-beta.7")

implementation("media.kamel:kamel-fetcher-resources-jvm:1.0.0-beta.7")
implementation("media.kamel:kamel-fetcher-resources-android:1.0.0-beta.7")

implementation("media.kamel:kamel-mapper-resources-id-android:1.0.0-beta.7")

// you also must ensure you define your own ktor engine for each target when using `kamel-image` for remote images

v1.0.0-beta.6

31 May 19:14
Compare
Choose a tag to compare
v1.0.0-beta.6 Pre-release
Pre-release

Beta 6 notes:

  • 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
  • kotlin 2.0.0

  • compose 1.6.10

v0.x -> v1.x notes:

Depreciated

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

New

  • #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

Try it out here:

implementation("media.kamel:kamel-image-default:1.0.0-beta.6")
// no need to specify your own ktor engines, one is included for each target

or to pick and choose features:

implementation("media.kamel:kamel-image:1.0.0-beta.6")

implementation("media.kamel:kamel-decoder-image-bitmap:1.0.0-beta.6")
implementation("media.kamel:kamel-decoder-image-bitmap-resizing:1.0.0-beta.6") // android only right now
implementation("media.kamel:kamel-decoder-image-vector:1.0.0-beta.6")
implementation("media.kamel:kamel-decoder-svg-batik:1.0.0-beta.6")
implementation("media.kamel:kamel-decoder-svg-std:1.0.0-beta.6")
implementation("media.kamel:kamel-decoder-animated-image:1.0.0-beta.6")

implementation("media.kamel:kamel-fetcher-resources-jvm:1.0.0-beta.6")
implementation("media.kamel:kamel-fetcher-resources-android:1.0.0-beta.6")

implementation("media.kamel:kamel-mapper-resources-id-android:1.0.0-beta.6")

// you also must ensure you define your own ktor engine for each target when using `kamel-image` for remote images

v0.9.5

25 May 21:16
Compare
Choose a tag to compare
  • Kotlin 2.0.0
  • Compose 1.6.10
  • Wasm build also published with 0.9.5-wasm

v1.0.0-beta.5

14 Mar 23:01
90b798c
Compare
Choose a tag to compare
v1.0.0-beta.5 Pre-release
Pre-release

Beta 5 notes:

  • Adds gif support! #12 with #100 by @luca992
    To try out:
    • Included in kame-image-default
    • Or use kamel-image + implementation("media.kamel:kamel-decoder-animated-image:1.0.0-beta.5") and add to your KamelConfig

v0.x -> v1.x notes:

  • kotlin 1.9.23
  • compose 1.6.1

Breaking changes

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

New

  • #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

Try it out here:

implementation("media.kamel:kamel-image-default:1.0.0-beta.5")
// no need to specify your own ktor engines, one is included for each target

or to pick and choose features:

implementation("media.kamel:kamel-image:1.0.0-beta.5")

implementation("media.kamel:kamel-decoder-image-bitmap:1.0.0-beta.5")
implementation("media.kamel:kamel-decoder-image-vector:1.0.0-beta.5")
implementation("media.kamel:kamel-decoder-svg-batik:1.0.0-beta.5")
implementation("media.kamel:kamel-decoder-svg-std:1.0.0-beta.5")
implementation("media.kamel:kamel-decoder-animated-image:1.0.0-beta.5")

implementation("media.kamel:kamel-fetcher-resources-jvm:1.0.0-beta.5")
implementation("media.kamel:kamel-fetcher-resources-android:1.0.0-beta.5")

implementation("media.kamel:kamel-mapper-resources-id-android:1.0.0-beta.5")

// you also must ensure you define your own ktor engine for each target when using `kamel-image` for remote images

v1.0.0-beta.4

14 Mar 03:07
Compare
Choose a tag to compare
v1.0.0-beta.4 Pre-release
Pre-release

Beta 4 notes:

  • kotlin 1.9.23
  • update to a stable compose version 1.6.1 that includes resources package name fix

v0.x -> v1.x notes:

Breaking changes

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

New

  • #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")

Try it out here:

implementation("media.kamel:kamel-image-default:1.0.0-beta.2")
// no need to specify your own ktor engines, one is included for each target

or to pick and choose features:

implementation("media.kamel:kamel-image:1.0.0-beta.4")

implementation("media.kamel:kamel-decoder-image-bitmap:1.0.0-beta.4")
implementation("media.kamel:kamel-decoder-image-vector:1.0.0-beta.4")
implementation("media.kamel:kamel-decoder-svg-batik:1.0.0-beta.4")
implementation("media.kamel:kamel-decoder-svg-std:1.0.0-beta.4")
implementation("media.kamel:kamel-fetcher-resources-jvm:1.0.0-beta.4")
implementation("media.kamel:kamel-fetcher-resources-android:1.0.0-beta.4")
implementation("media.kamel:kamel-mapper-resources-id-android:1.0.0-beta.4")

// you also must ensure you define your own ktor engine for each target when using `kamel-image`

v0.9.4

08 Mar 07:33
Compare
Choose a tag to compare
  • Compose 1.6.0
  • Wasm build also published with 0.9.4-wasm

v1.0.0-beta.3

12 Mar 08:57
Compare
Choose a tag to compare
v1.0.0-beta.3 Pre-release
Pre-release

Beta 3 notes:

  • Fixes: #97 by autoloading KamelConfig.Default using ServiceLoader (jvm) and @EagerInitialization (non-jvm)
  • Fixes: #85 Add wasmJS target
  • Fixes wasmJs ImageVectorDecoder (XML)

v0.x -> v1.x notes:

Breaking changes

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

New

  • #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")

Try it out here:

implementation("media.kamel:kamel-image-default:1.0.0-beta.2")
// no need to specify your own ktor engines, one is included for each target

or to pick and choose features:

implementation("media.kamel:kamel-image:1.0.0-beta.2")

implementation("media.kamel:kamel-decoder-image-bitmap:1.0.0-beta.2")
implementation("media.kamel:kamel-decoder-image-vector:1.0.0-beta.2")
implementation("media.kamel:kamel-decoder-svg-batik:1.0.0-beta.2")
implementation("media.kamel:kamel-decoder-svg-std:1.0.0-beta.2")
implementation("media.kamel:kamel-fetcher-resources-jvm:1.0.0-beta.2")
implementation("media.kamel:kamel-fetcher-resources-android:1.0.0-beta.2")
implementation("media.kamel:kamel-mapper-resources-id-android:1.0.0-beta.2")

// you also must ensure you define your own ktor engine for each target when using `kamel-image`

v1.0.0-beta.2

02 Mar 18:15
Compare
Choose a tag to compare
v1.0.0-beta.2 Pre-release
Pre-release

Beta 2 notes:

  • Fixes #97 on iOS

v0.x -> v1.x notes:

Breaking changes

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

New

  • #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")

Try it out here:

implementation("media.kamel:kamel-image-default:1.0.0-beta.2")
// no need to specify your own ktor engines, one is included for each target

or to pick and choose features:

implementation("media.kamel:kamel-image:1.0.0-beta.2")

implementation("media.kamel:kamel-decoder-image-bitmap:1.0.0-beta.2")
implementation("media.kamel:kamel-decoder-image-vector:1.0.0-beta.2")
implementation("media.kamel:kamel-decoder-svg-batik:1.0.0-beta.2")
implementation("media.kamel:kamel-decoder-svg-std:1.0.0-beta.2")
implementation("media.kamel:kamel-fetcher-resources-jvm:1.0.0-beta.2")
implementation("media.kamel:kamel-fetcher-resources-android:1.0.0-beta.2")
implementation("media.kamel:kamel-mapper-resources-id-android:1.0.0-beta.2")

// you also must ensure you define your own ktor engine for each target when using `kamel-image`