Releases: Kamel-Media/Kamel
v1.0.1
v1.0.0
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 inkamel-core
. - #96
media.kamel:kamel-image-default
Includes all includes all packages besideskamel-decoder-svg-batik
- Adds a
FileUrlFetcher
to support loading non-resource local files String
mapper will now handlefile:///
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 addimageBitmapResizingDecoder()
to yourKamelConfig
- To try out add
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
- Old KamelImage & KamelImageBox should be replaced with new KamelImage & KamelImageBox api with a
BoxWithConstraintsScope
scoped resource in that can support image resizing
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
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.
- Meaning you can remove
- kotlin
2.0.0
- compose
1.6.11
v0.x -> v1.x notes:
Depreciated
- Old KamelImage & KamelImageBox should be replaced with new KamelImage & KamelImageBox api with a
BoxWithConstraintsScope
scoped resource in that can support image resizing
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 inkamel-core
. - #96
media.kamel:kamel-image-default
Includes all includes all packages besideskamel-decoder-svg-batik
- Adds a
FileUrlFetcher
to support loading non-resource local files String
mapper will now handlefile:///
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 addimageBitmapResizingDecoder()
to yourKamelConfig
- To try out add
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
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 addimageBitmapResizingDecoder()
to yourKamelConfig
- Add
-
kotlin
2.0.0
-
compose
1.6.10
v0.x -> v1.x notes:
Depreciated
- Old KamelImage & KamelImageBox should be replaced with new KamelImage & KamelImageBox api with a
BoxWithConstraintsScope
scoped resource in that can support image resizing
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 inkamel-core
. - #96
media.kamel:kamel-image-default
Includes all includes all packages besideskamel-decoder-svg-batik
- Adds a
FileUrlFetcher
to support loading non-resource local files String
mapper will now handlefile:///
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
v1.0.0-beta.5
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 yourKamelConfig
- Included in
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 inkamel-core
. - #96
media.kamel:kamel-image-default
Includes all includes all packages besideskamel-decoder-svg-batik
- Adds a
FileUrlFetcher
to support loading non-resource local files String
mapper will now handlefile:///
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
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 inkamel-core
. - #96
media.kamel:kamel-image-default
Includes all includes all packages besideskamel-decoder-svg-batik
- Adds a
FileUrlFetcher
to support loading non-resource local files String
mapper will now handlefile:///
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
v1.0.0-beta.3
Beta 3 notes:
- Fixes: #97 by autoloading
KamelConfig.Default
usingServiceLoader
(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 inkamel-core
. - #96
media.kamel:kamel-image-default
Includes all includes all packages besideskamel-decoder-svg-batik
- Adds a
FileUrlFetcher
to support loading non-resource local files String
mapper will now handlefile:///
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
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 inkamel-core
. - #96
media.kamel:kamel-image-default
Includes all includes all packages besideskamel-decoder-svg-batik
- Adds a
FileUrlFetcher
to support loading non-resource local files String
mapper will now handlefile:///
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`