### Install Project Dependencies Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/docs/README.md Installs the necessary dependencies for the project using Yarn. ```bash yarn ``` -------------------------------- ### Default Component Setup (Android) Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Details the default component setup functions for Android, including overloaded versions and parameters. ```kotlin Lcom/seiko/imageloader/component/SetupDefaultComponents_androidKt; HSPLcom/seiko/imageloader/component/SetupDefaultComponents_androidKt;->setupDefaultComponents$default(Lcom/seiko/imageloader/component/ComponentRegistryBuilder;Landroid/content/Context;Landroidx/compose/ui/unit/Density;Lkotlin/jvm/functions/Function0;ILokio/FileSystem;ILjava/lang/Object;)V HSPLcom/seiko/imageloader/component/SetupDefaultComponents_androidKt;->setupDefaultComponents$default(Lcom/seiko/imageloader/component/ComponentRegistryBuilder;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)V HSPLcom/seiko/imageloader/component/SetupDefaultComponents_androidKt;->setupDefaultComponents(Lcom/seiko/imageloader/component/ComponentRegistryBuilder;Landroid/content/Context;Landroidx/compose/ui/unit/Density;Lkotlin/jvm/functions/Function0;ILokio/FileSystem;)V HSPLcom/seiko/imageloader/component/SetupDefaultComponents_androidKt;->setupDefaultComponents(Lcom/seiko/imageloader/component/ComponentRegistryBuilder;Lkotlin/jvm/functions/Function0;)V ``` -------------------------------- ### Start Local Development Server Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/docs/README.md Starts a local development server for live previewing changes. Changes are reflected without server restart. ```bash yarn start ``` -------------------------------- ### Component Setup Functions Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Lists various functions for setting up components, including base64, common, Android, JVM, and Ktor components. ```kotlin Lcom/seiko/imageloader/component/SetupComponentsKt; HSPLcom/seiko/imageloader/component/SetupComponentsKt;->setupBase64Components(Lcom/seiko/imageloader/component/ComponentRegistryBuilder;)V HSPLcom/seiko/imageloader/component/SetupComponentsKt;->setupCommonComponents(Lcom/seiko/imageloader/component/ComponentRegistryBuilder;Lokio/FileSystem;)V Lcom/seiko/imageloader/component/SetupComponents_androidKt; HSPLcom/seiko/imageloader/component/SetupComponents_androidKt;->setupAndroidComponents(Lcom/seiko/imageloader/component/ComponentRegistryBuilder;Landroid/content/Context;I)V Lcom/seiko/imageloader/component/SetupComponents_jvmKt; HSPLcom/seiko/imageloader/component/SetupComponents_jvmKt;->setupJvmComponents(Lcom/seiko/imageloader/component/ComponentRegistryBuilder;)V Lcom/seiko/imageloader/component/SetupKtorComponentsKt; HSPLcom/seiko/imageloader/component/SetupKtorComponentsKt;->setupKtorComponents(Lcom/seiko/imageloader/component/ComponentRegistryBuilder;Lkotlin/jvm/functions/Function0;)V ``` -------------------------------- ### SVG Component Setup Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Provides information on setting up SVG components using the `setupSvgComponents` function. ```kotlin Lcom/seiko/imageloader/component/SetupSvgComponentsKt; HSPLcom/seiko/imageloader/component/SetupSvgComponentsKt;->setupSvgComponents(Lcom/seiko/imageloader/component/ComponentRegistryBuilder;Landroidx/compose/ui/unit/Density;)V ``` -------------------------------- ### Compose ImageLoader Version Catalog (libs.versions.toml) Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/docs/docs/setup.mdx This snippet provides the necessary entries for a Gradle version catalog file (libs.versions.toml) to manage Compose ImageLoader dependencies and their versions. It defines the core library and its extensions. ```xml [versions] image-loader = "1.10.0" [libraries] image-loader = { module = "io.github.qdsfdhvh:image-loader", version.ref = "image-loader" } image-loader-extension-moko-resources = { module = "io.github.qdsfdhvh:image-loader-extension-moko-resources", version.ref = "image-loader" } image-loader-extension-blur = { module = "io.github.qdsfdhvh:image-loader-extension-blur", version.ref = "image-loader" } image-loader-extension-imageio = { module = "io.github.qdsfdhvh:image-loader-extension-imageio", version.ref = "image-loader" } ``` -------------------------------- ### Display Image with Compose Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/docs/docs/core/basic.md Demonstrates three ways to display images using the Compose ImageLoader library: AutoSizeImage, AutoSizeBox, and rememberImagePainter. AutoSizeImage and AutoSizeBox are preferred for their Modifier.Node based implementation. ```kotlin AutoSizeImage( "https://...", contentDescription = "image", ) AutoSizeBox("https://...") { action -> when (action) { is ImageAction.Success -> { Image( rememberImageSuccessPainter(action), contentDescription = "image", ) } is ImageAction.Loading -> {} is ImageAction.Failure -> {} } } Image( painter = rememberImagePainter("https://.."), contentDescription = "image", ) ``` -------------------------------- ### Configure LocalImageLoader (Before 1.2.8) Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/README.md Illustrates the setup for `LocalImageLoader` before version 1.2.8, where it required explicit configuration on each platform, similar to Coil's setup. ```kotlin @Composable fun Content() { CompositionLocalProvider( LocalImageLoader provides remember { generateImageLoader() }, ) { val painter = rememberAsyncImagePainter("https://.....") Image( painter = painter, contentDescription = "image", ) } } fun generateImageLoader(): ImageLoader { return ImageLoaderBuilder().build() } ``` -------------------------------- ### Custom ImageLoader Configuration (JVM) Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/docs/docs/core/basic.md Details how to create a custom ImageLoader for JVM environments, specifying cache configurations for bitmaps (32MB), images (50), and painters (50). It also includes logic to determine the appropriate cache directory based on the operating system. ```kotlin fun generateImageLoader(): ImageLoader { return ImageLoader { components { setupDefaultComponents() } interceptor { // cache 32MB bitmap bitmapMemoryCacheConfig { maxSize(32 * 1024 * 1024) // 32MB } // cache 50 image imageMemoryCacheConfig { maxSize(50) } // cache 50 painter painterMemoryCacheConfig { maxSize(50) } diskCacheConfig { directory(getCacheDir().toOkioPath().resolve("image_cache")) maxSizeBytes(512L * 1024 * 1024) // 512MB } } } } // about currentOperatingSystem, see app private fun getCacheDir() = when (currentOperatingSystem) { OperatingSystem.Windows -> File(System.getenv("AppData"), "$ApplicationName/cache") OperatingSystem.Linux -> File(System.getProperty("user.home"), ".cache/$ApplicationName") OperatingSystem.MacOS -> File(System.getProperty("user.home"), "Library/Caches/$ApplicationName") else -> throw IllegalStateException("Unsupported operating system") } ``` -------------------------------- ### Add Compose ImageLoader Dependency (build.gradle.kts) Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/docs/docs/setup.mdx This snippet shows how to add the core Compose ImageLoader dependency and optional extensions for Moko Resources and Blur effects to your multiplatform project's commonMain source set. It also includes the ImageIO Decoder for the JVM source set. ```kotlin kotlin { android() ios() // ... sourceSets { val commonMain by getting { dependencies { api("io.github.qdsfdhvh:image-loader:1.10.0") // optional - Moko Resources Decoder api("io.github.qdsfdhvh:image-loader-extension-moko-resources:1.10.0") // optional - Blur Interceptor (only support bitmap) api("io.github.qdsfdhvh:image-loader-extension-blur:1.10.0") } } val jvmMain by getting { dependencies { // optional - ImageIO Decoder api("io.github.qdsfdhvh:image-loader-extension-imageio:1.10.0") } } } } ``` -------------------------------- ### Configure ImageLoader Caching (Kotlin) Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/docs/docs/core/basic.md Demonstrates how to configure the ImageLoader with bitmap, image, and painter memory caches, as well as a disk cache. It specifies maximum sizes for each cache type. ```kotlin fun generateImageLoader(): ImageLoader { return ImageLoader { // ... interceptor { // cache 32MB bitmap bitmapMemoryCacheConfig { maxSize(32 * 1024 * 1024) // 32MB } // cache 50 image imageMemoryCacheConfig { maxSize(50) } // cache 50 painter painterMemoryCacheConfig { maxSize(50) } // At the moment I don't know how to configure the disk cache in js either diskCacheConfig(FakeFileSystem().apply { emulateUnix() }) { directory(FileSystem.SYSTEM_TEMPORARY_DIRECTORY) maxSizeBytes(256L * 1024 * 1024) // 256MB } } } } ``` -------------------------------- ### Android-Specific ImageLoader Configuration Lambdas (Kotlin) Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Shows the internal lambda functions used for configuring the Android-specific ImageLoader. These lambdas handle the setup of options, interceptors, and component registries. ```kotlin HSPLcom/seiko/imageloader/LocalImageLoader_androidKt;->$r8$lambda$0NccL0F1Zu8oIppCL-a2T59QdcA(Landroid/content/Context;Lcom/seiko/imageloader/ImageLoaderConfigBuilder;)Lkotlin/Unit; HSPLcom/seiko/imageloader/LocalImageLoader_androidKt;->$r8$lambda$EP7v8cmIojvNlmnmjAa_q4HanuQ(Landroid/content/Context;Lcom/seiko/imageloader/intercept/InterceptorsBuilder;)Lkotlin/Unit; HSPLcom/seiko/imageloader/LocalImageLoader_androidKt;->$r8$lambda$MDIAX8eoeyGdJX1cesAWvm_v2Ek(Lcom/seiko/imageloader/component/ComponentRegistryBuilder;)Lkotlin/Unit; HSPLcom/seiko/imageloader/LocalImageLoader_androidKt;->$r8$lambda$tMwz0KEOfut1ofJ_XfCSbp61vTw(Landroid/content/Context;Lcom/seiko/imageloader/option/OptionsBuilder;)Lkotlin/Unit; HSPLcom/seiko/imageloader/LocalImageLoader_androidKt;->createDefaultAndroid$lambda$8$lambda$1(Landroid/content/Context;Lcom/seiko/imageloader/option/OptionsBuilder;)Lkotlin/Unit; HSPLcom/seiko/imageloader/LocalImageLoader_androidKt;->createDefaultAndroid$lambda$8$lambda$2(Lcom/seiko/imageloader/component/ComponentRegistryBuilder;)Lkotlin/Unit; HSPLcom/seiko/imageloader/LocalImageLoader_androidKt;->createDefaultAndroid$lambda$8$lambda$7(Landroid/content/Context;Lcom/seiko/imageloader/intercept/InterceptorsBuilder;)Lkotlin/Unit; HSPLcom/seiko/imageloader/LocalImageLoader_androidKt;->createDefaultAndroid$lambda$8(Landroid/content/Context;Lcom/seiko/imageloader/ImageLoaderConfigBuilder;)Lkotlin/Unit; ``` -------------------------------- ### Platform Utilities Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Utility functions for platform-specific operations, such as getting the default file system or the IO dispatcher. ```kotlin HSPLcom/seiko/imageloader/util/Platform_jvmKt;->getDefaultFileSystem()Lokio/FileSystem; HSPLcom/seiko/imageloader/util/Platform_nojsandwasmKt;->getIoDispatcher()Lkotlinx/coroutines/CoroutineDispatcher; ``` -------------------------------- ### Setup Dependencies for Compose ImageLoader Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/README.md This snippet shows how to add the Compose ImageLoader library and its extensions to your project's build.gradle.kts file for different source sets. It includes dependencies for the core library, Compose Resources, Moko Resources, Blur Interceptor, and ImageIO Decoder. ```diff kotlin { android() ios() // ... sourceSets { val commonMain by getting { dependencies { + api("io.github.qdsfdhvh:image-loader:1.10.0") // optional - Compose Multiplatform Resources Decoder + api("io.github.qdsfdhvh:image-loader-extension-compose-resources:1.10.0") // optional - Moko Resources Decoder + api("io.github.qdsfdhvh:image-loader-extension-moko-resources:1.10.0") // optional - Blur Interceptor (only support bitmap) + api("io.github.qdsfdhvh:image-loader-extension-blur:1.10.0") } } val jvmMain by getting { dependencies { // optional - ImageIO Decoder + api("io.github.qdsfdhvh:image-loader-extension-imageio:1.10.0") } } } } ``` -------------------------------- ### Display Image with rememberImagePainter Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/README.md A basic example of how to display an image using the `rememberImagePainter` composable. This is the simplest way to load an image from a URL. ```kotlin val painter = rememberImagePainter("https://..") Image( painter = painter, contentDescription = "image", ) ``` -------------------------------- ### Create ImageRequest Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/README.md Demonstrates how to create an ImageRequest with a data source (URL), custom interceptors, component setup, and extra data. Also shows how to create a new request based on an existing one. ```kotlin val imageRequest = ImageRequest { data(url) addInterceptor(DoSomthingInterceptor()) components { // ... } extra { set("key_int", 11) } } val newImageRequest = ImageRequest(imageRequest) { // ... } ``` -------------------------------- ### Custom ImageLoader Configuration (iOS & macOS) Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/docs/docs/core/basic.md Illustrates the creation of a custom ImageLoader for iOS and macOS, similar to the JVM configuration with specific cache sizes for bitmaps (32MB), images (50), and painters (50). It utilizes `NSSearchPathForDirectoriesInDomains` to locate the appropriate cache directory. ```kotlin fun generateImageLoader(): ImageLoader { return ImageLoader { components { setupDefaultComponents() } interceptor { // cache 32MB bitmap bitmapMemoryCacheConfig { maxSize(32 * 1024 * 1024) // 32MB } // cache 50 image imageMemoryCacheConfig { maxSize(50) } // cache 50 painter painterMemoryCacheConfig { maxSize(50) } diskCacheConfig { directory(getCacheDir().toPath().resolve("image_cache")) maxSizeBytes(512L * 1024 * 1024) // 512MB } } } } private fun getCacheDir(): String { return NSSearchPathForDirectoriesInDomains( NSCachesDirectory, NSUserDomainMask, true, ).first() as String } ``` -------------------------------- ### Custom ImageLoader Configuration (Android) Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/docs/docs/core/basic.md Provides a Kotlin function to generate a custom ImageLoader for Android, configuring memory and disk cache options. It sets memory cache sizes for bitmaps, images, and painters, and defines a disk cache directory and size. ```kotlin fun generateImageLoader(): ImageLoader { return ImageLoader { options { androidContext(context) } components { setupDefaultComponents() } interceptor { // cache 25% memory bitmap bitmapMemoryCacheConfig { maxSizePercent(context, 0.25) } // cache 50 image imageMemoryCacheConfig { maxSize(50) } // cache 50 painter painterMemoryCacheConfig { maxSize(50) } diskCacheConfig { directory(context.cacheDir.resolve("image_cache").toOkioPath()) maxSizeBytes(512L * 1024 * 1024) // 512MB } } } } ``` -------------------------------- ### Custom ImageLoader Configuration Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/README.md Demonstrates how to create and configure a custom `ImageLoader` instance within a Composable function. This allows for platform-specific caching strategies and component setup. ```kotlin @Composable fun Content() { CompositionLocalProvider( LocalImageLoader provides remember { generateImageLoader() }, ) { // Option 1 on 1.7.0+ AutoSizeImage( "https://...", contentDescription = "image", ) // Option 2 on 1.7.0+ AutoSizeBox("https://...") { action -> when (action) { is ImageAction.Success -> { Image( rememberImageSuccessPainter(action), contentDescription = "image", ) } is ImageAction.Loading -> {} is ImageAction.Failure -> {} } } // Option 3 Image( painter = rememberImagePainter("https://.."), contentDescription = "image", ) } } ``` -------------------------------- ### Generate ImageLoader with Cache Configurations (iOS) Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/README.md Configures an ImageLoader instance for iOS with specified memory and disk cache sizes. Includes setup for bitmap, image, and painter caches, as well as disk cache directory and size. ```kotlin fun generateImageLoader(): ImageLoader { return ImageLoader { components { setupDefaultComponents() } interceptor { // cache 32MB bitmap bitmapMemoryCacheConfig { maxSize(32 * 1024 * 1024) // 32MB } // cache 50 image imageMemoryCacheConfig { maxSize(50) } // cache 50 painter painterMemoryCacheConfig { maxSize(50) } diskCacheConfig { directory(getCacheDir().toPath().resolve("image_cache")) maxSizeBytes(512L * 1024 * 1024) // 512MB } } } } private fun getCacheDir(): String { return NSSearchPathForDirectoriesInDomains( NSCachesDirectory, NSUserDomainMask, true, ).first() as String } ``` -------------------------------- ### ImageLoader Creation and Defaults (Kotlin) Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Demonstrates the creation of an ImageLoader instance, including default configurations for Android. It shows how to set up interceptors, components, and options. ```kotlin HSPLcom/seiko/imageloader/ImageLoaderKt;->ImageLoader$default(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lcom/seiko/imageloader/ImageLoader; HSPLcom/seiko/imageloader/ImageLoaderKt;->ImageLoader(Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function1;)Lcom/seiko/imageloader/ImageLoader; HSPLcom/seiko/imageloader/LocalImageLoader_androidKt;->createDefaultAndroid(Lcom/seiko/imageloader/ImageLoader$Companion;Landroid/content/Context;)Lcom/seiko/imageloader/ImageLoader; ``` -------------------------------- ### Build Static Website Content Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/docs/README.md Generates the static content for the website, typically placed in a 'build' directory, ready for hosting. ```bash yarn build ``` -------------------------------- ### Options Class Constructors and Getters Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Details the constructors for the Options class, which defines various settings for image loading, and getter methods for accessing these options. ```APIDOC Options: __init__(allowInexactSize: Boolean, skipMemoryCache: Boolean, skipDiskCache: Boolean, bitmapConfig: BitmapConfig, memorySize: Long, scale: Scale, extra: Map, memoryCachePolicy: CachePolicy, diskCachePolicy: CachePolicy, preCompose: Boolean, cacheMaxPercentage: Int, cacheMaxBytes: Int, headers: Map) allowInexactSize: Whether to allow inexact image sizes. skipMemoryCache: Whether to skip the memory cache. skipDiskCache: Whether to skip the disk cache. bitmapConfig: The Bitmap configuration to use. memorySize: The size of the image in memory. scale: The scaling strategy for the image. extra: Additional data for the request. memoryCachePolicy: Policy for the memory cache. diskCachePolicy: Policy for the disk cache. preCompose: Whether to pre-compose the image. cacheMaxPercentage: Maximum percentage of cache to use. cacheMaxBytes: Maximum bytes of cache to use. headers: Custom headers for the request. __init__(allowInexactSize: Boolean, skipMemoryCache: Boolean, skipDiskCache: Boolean, bitmapConfig: BitmapConfig, memorySize: Long, scale: Scale, extra: Map, memoryCachePolicy: CachePolicy, diskCachePolicy: CachePolicy, preCompose: Boolean, cacheMaxPercentage: Int, cacheMaxBytes: Int, headers: Map, constructorMarker: DefaultConstructorMarker) This is an overloaded constructor for Options. getAllowInexactSize(): Boolean Returns whether inexact sizes are allowed. getBitmapConfig(): BitmapConfig Returns the Bitmap configuration. ``` -------------------------------- ### Deploy Website (SSH) Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/docs/README.md Deploys the website using SSH, often used for pushing to a specific branch like 'gh-pages' for hosting services. ```bash USE_SSH=true yarn deploy ``` -------------------------------- ### ImageLoader Options Configuration Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/docs/docs/core/imageloader.md Configures various options for ImageLoader, including size handling, alpha settings, retry policies, image configuration, scaling, cache policies, animation, and extra parameters. ```kotlin ImageLoader { options { allowInexactSize = false premultipliedAlpha = true retryIfDiskDecodeError = true imageConfig = Options.ImageConfig.ARGB_8888 scale = Scale.AUTO memoryCachePolicy = CachePolicy.ENABLED diskCachePolicy = CachePolicy.ENABLED playAnimate = true repeatCount = Options.REPEAT_INFINITE extra { put("key", "value") } } } ``` -------------------------------- ### Image Loading with Compose ImageLoader Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/docs/src/pages/index.mdx Demonstrates different ways to load and display images using the Compose ImageLoader library. Includes options for automatic sizing and handling different image loading states. ```kotlin @Composeable fun Content() { // Option 1 on 1.7.0+ AutoSizeImage( "https://...", contentDescription = "image", ) // Option 2 on 1.7.0+ AutoSizeBox("https://...") { action -> when (action) { is ImageAction.Success -> { Image( rememberImageSuccessPainter(action), contentDescription = "image", ) } is ImageAction.Loading -> {} is ImageAction.Failure -> {} } } // Option 3 Image( painter = rememberImagePainter("https://.."), contentDescription = "image", ) } ``` -------------------------------- ### ComponentRegistry and Builder Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Details the ComponentRegistry and its builder, including methods for adding components and retrieving lists of factories. ```kotlin Lcom/seiko/imageloader/component/ComponentRegistry; HSPLcom/seiko/imageloader/component/ComponentRegistry;->()V HSPLcom/seiko/imageloader/component/ComponentRegistry;->(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;) HSPLcom/seiko/imageloader/component/ComponentRegistry;->getDecoderFactories()Ljava/util/List; HSPLcom/seiko/imageloader/component/ComponentRegistry;->getFetcherFactories()Ljava/util/List; HSPLcom/seiko/imageloader/component/ComponentRegistry;->getKeyers()Ljava/util/List; HSPLcom/seiko/imageloader/component/ComponentRegistry;->getMappers()Ljava/util/List; Lcom/seiko/imageloader/component/ComponentRegistryBuilder; HSPLcom/seiko/imageloader/component/ComponentRegistryBuilder;->()V HSPLcom/seiko/imageloader/component/ComponentRegistryBuilder;->(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;) HSPLcom/seiko/imageloader/component/ComponentRegistryBuilder;->(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;) HSPLcom/seiko/imageloader/component/ComponentRegistryBuilder;->add(Lcom/seiko/imageloader/component/decoder/Decoder$Factory;)V HSPLcom/seiko/imageloader/component/ComponentRegistryBuilder;->add(Lcom/seiko/imageloader/component/fetcher/Fetcher$Factory;)V HSPLcom/seiko/imageloader/component/ComponentRegistryBuilder;->add(Lcom/seiko/imageloader/component/keyer/Keyer;)V HSPLcom/seiko/imageloader/component/ComponentRegistryBuilder;->add(Lcom/seiko/imageloader/component/mapper/Mapper;)V HSPLcom/seiko/imageloader/component/ComponentRegistryBuilder;->build$image_loader_release()Lcom/seiko/imageloader/component/ComponentRegistry; HSPLcom/seiko/imageloader/component/ComponentRegistryBuilder;->takeFrom(Lcom/seiko/imageloader/component/ComponentRegistry;Z)V ``` -------------------------------- ### Options Class API Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt API documentation for the Options class, detailing its properties and their purposes in configuring image loading. ```APIDOC Options: diskCachePolicy: CachePolicy - Policy for disk caching. extra: Map - Extra data associated with the options. maxImageSize: Int - Maximum size of the image in pixels. memoryCacheKeyExtras: Map - Extras used for memory cache key generation. memoryCachePolicy: CachePolicy - Policy for memory caching. playAnimate: Boolean - Whether to play animation for the image. premultipliedAlpha: Boolean - Whether the image has premultiplied alpha. repeatCount: Int - Number of times the animation should repeat. retryIfDiskDecodeError: Boolean - Whether to retry if disk decoding fails. scale: Scale - The scaling behavior for the image. size: Long - The size of the image in bytes (internal representation). isBitmap: Boolean - Whether the loaded resource is a bitmap. ``` -------------------------------- ### Options Class Methods Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Provides access to various configuration settings for image loading. These methods allow retrieval of disk and memory cache policies, maximum image size, animation settings, and more. ```kotlin HSPLcom/seiko/imageloader/option/Options;->getDiskCachePolicy()Lcom/seiko/imageloader/cache/CachePolicy; HSPLcom/seiko/imageloader/option/Options;->getExtra()Ljava/util/Map; HSPLcom/seiko/imageloader/option/Options;->getMaxImageSize()I HSPLcom/seiko/imageloader/option/Options;->getMemoryCacheKeyExtras()Ljava/util/Map; HSPLcom/seiko/imageloader/option/Options;->getMemoryCachePolicy()Lcom/seiko/imageloader/cache/CachePolicy; HSPLcom/seiko/imageloader/option/Options;->getPlayAnimate()Z HSPLcom/seiko/imageloader/option/Options;->getPremultipliedAlpha()Z HSPLcom/seiko/imageloader/option/Options;->getRepeatCount()I HSPLcom/seiko/imageloader/option/Options;->getRetryIfDiskDecodeError()Z HSPLcom/seiko/imageloader/option/Options;->getScale()Lcom/seiko/imageloader/option/Scale; HSPLcom/seiko/imageloader/option/Options;->getSize-NH-jbRc()J HSPLcom/seiko/imageloader/option/Options;->isBitmap()Z ``` -------------------------------- ### Deploy Website (No SSH) Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/docs/README.md Deploys the website without using SSH, requiring the GitHub username for authentication. ```bash GIT_USER= yarn deploy ``` -------------------------------- ### Keyer Implementations Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Defines strategies for generating unique keys for cached images, including specific handling for Ktor URLs and Android URIs. ```kotlin Lcom/seiko/imageloader/component/keyer/Keyer; Lcom/seiko/imageloader/component/keyer/KtorUrlKeyer; HSPLcom/seiko/imageloader/component/keyer/KtorUrlKeyer;->()V Lcom/seiko/imageloader/component/keyer/UriKeyer; HSPLcom/seiko/imageloader/component/keyer/UriKeyer;->()V HSPLcom/seiko/imageloader/component/keyer/UriKeyer;->(Landroid/content/Context;)V ``` -------------------------------- ### ImageDecoderDecoder Factory Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Details the ImageDecoderDecoder factory, including its initialization with context and flags. ```kotlin Lcom/seiko/imageloader/component/decoder/Decoder$Factory; Lcom/seiko/imageloader/component/decoder/ImageDecoderDecoder$Factory; HSPLcom/seiko/imageloader/component/decoder/ImageDecoderDecoder$Factory;->()V HSPLcom/seiko/imageloader/component/decoder/ImageDecoderDecoder$Factory;->(Landroid/content/Context;IZ)V ``` -------------------------------- ### OptionsBuilder Class API Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt API documentation for the OptionsBuilder class, outlining methods for constructing and modifying image loading options. ```APIDOC OptionsBuilder: __init__(): Initializes a new OptionsBuilder. build(): Builds and returns an Options object. extra(block: (MutableMap) -> Unit): Configures extra data for the options. getRepeatCount(): Returns the current repeat count. takeFrom(options: Options, copyExtra: Boolean = false): Copies configuration from an existing Options object. ``` -------------------------------- ### Resource Mappers Initialization Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Demonstrates the initialization of different resource mappers, including ResourceIntMapper, ResourceUriMapper, StringToUriMapper, and UriToPathMapper. These mappers are essential for converting various resource types into URIs or paths for image loading. ```kotlin HSPLcom/seiko/imageloader/component/mapper/ResourceIntMapper;->(Landroid/content/Context;)V HSPLcom/seiko/imageloader/component/mapper/ResourceUriMapper;->(Landroid/content/Context;)V HSPLcom/seiko/imageloader/component/mapper/StringToUriMapper;->()V HSPLcom/seiko/imageloader/component/mapper/UriToPathMapper;->()V ``` -------------------------------- ### ImageLoader Class Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Represents the main image loading component. Contains companion object for initialization and static methods. ```kotlin package com.seiko.imageloader class ImageLoader { public companion object { // ... companion object initialization and methods } } ``` -------------------------------- ### RealImageLoader Constructor and Config Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Details the constructor for the RealImageLoader class and how to access its configuration. ```kotlin HSPLcom/seiko/imageloader/RealImageLoader;->(Lkotlin/coroutines/CoroutineContext;Lcom/seiko/imageloader/ImageLoaderConfig;)V HSPLcom/seiko/imageloader/RealImageLoader;->getConfig()Lcom/seiko/imageloader/ImageLoaderConfig; ``` -------------------------------- ### OptionsBuilder Class Methods Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Facilitates the creation and modification of Options objects. It includes methods for setting extras, repeat counts, and taking configurations from existing Options objects. ```kotlin HSPLcom/seiko/imageloader/option/OptionsBuilder;->()V HSPLcom/seiko/imageloader/option/OptionsBuilder;->build$image_loader_release()Lcom/seiko/imageloader/option/Options; HSPLcom/seiko/imageloader/option/OptionsBuilder;->extra(Lkotlin/jvm/functions/Function1;)V HSPLcom/seiko/imageloader/option/OptionsBuilder;->getRepeatCount()I HSPLcom/seiko/imageloader/option/OptionsBuilder;->takeFrom$lambda$0(ZLcom/seiko/imageloader/option/Options;Ljava/util/Map;)Lkotlin/Unit; HSPLcom/seiko/imageloader/option/OptionsBuilder;->takeFrom(Lcom/seiko/imageloader/option/Options;Z)V ``` -------------------------------- ### Logger Companion and None Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Provides access to logging functionalities, including the companion object and a 'None' logger implementation. ```kotlin HSPLcom/seiko/imageloader/util/Logger$Companion;->getNone()Lcom/seiko/imageloader/util/Logger; HSPLcom/seiko/imageloader/util/Logger$Companion$None$1;->()V ``` -------------------------------- ### ImageLoader Component Configuration Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/docs/docs/core/imageloader.md Configures the components used by ImageLoader, such as Mappers, Keyers, Fetchers, and Decoders. ```kotlin ImageLoader { components { add(Mapper) add(Keyer) add(Fetcher) add(Decoder) } } ``` -------------------------------- ### Interceptors Configuration and Management Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Covers the configuration and management of interceptors within the ImageLoader. This includes building interceptor lists, setting up disk cache, and adding default memory cache interceptors. ```kotlin HSPLcom/seiko/imageloader/intercept/InterceptorsBuilder;->()V HSPLcom/seiko/imageloader/intercept/InterceptorsBuilder;->addDefaultMemoryCacheInterceptor(Lcom/seiko/imageloader/intercept/MemoryCacheInterceptor;)V HSPLcom/seiko/imageloader/intercept/InterceptorsBuilder;->addInterceptor(Lcom/seiko/imageloader/intercept/Interceptor;)V HSPLcom/seiko/imageloader/intercept/InterceptorsBuilder;->build$image_loader_release()Lcom/seiko/imageloader/intercept/Interceptors; HSPLcom/seiko/imageloader/intercept/InterceptorsBuilder;->diskCacheConfig(Lokio/FileSystem;Lkotlin/jvm/functions/Function1;)V HSPLcom/seiko/imageloader/intercept/InterceptorsBuilder;->takeFrom(Lcom/seiko/imageloader/intercept/Interceptors;ZZ)V ``` -------------------------------- ### ImageLoaderConfigBuilder Class Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Builder class for creating ImageLoaderConfig instances. Allows configuration of components, interceptors, options, and logger. ```kotlin package com.seiko.imageloader import com.seiko.imageloader.component.ComponentRegistryBuilder import com.seiko.imageloader.intercept.InterceptorsBuilder import com.seiko.imageloader.option.OptionsBuilder import com.seiko.imageloader.util.Logger import kotlin.jvm.functions.Function1 class ImageLoaderConfigBuilder { public fun build$image_loader_release(): ImageLoaderConfig { // ... builds and returns ImageLoaderConfig } public fun components(block: Function1) { // ... configures components using a builder lambda } public fun interceptor(block: Function1) { // ... configures interceptors using a builder lambda } public fun options(block: Function1) { // ... configures options using a builder lambda } public fun setLogger(logger: Logger) { // ... sets the logger } public fun takeFrom(config: ImageLoaderConfig, z: Boolean, z2: Boolean, z3: Boolean, z4: Boolean) { // ... takes configuration from another ImageLoaderConfig } } ``` -------------------------------- ### Options_androidKt Extension Functions Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Android-specific extension functions for configuring image loading options. This includes setting the Android context and handling related lambda functions. ```kotlin HSPLcom/seiko/imageloader/option/Options_androidKt;->androidContext$lambda$0(Landroid/content/Context;Ljava/util/Map;)Lkotlin/Unit; HSPLcom/seiko/imageloader/option/Options_androidKt;->androidContext(Lcom/seiko/imageloader/option/OptionsBuilder;Landroid/content/Context;)V HSPLcom/seiko/imageloader/option/Options_androidKt$$ExternalSyntheticLambda0;->(Landroid/content/Context;)V HSPLcom/seiko/imageloader/option/Options_androidKt$$ExternalSyntheticLambda0;->invoke(Ljava/lang/Object;)Ljava/lang/Object; ``` -------------------------------- ### ImageLoaderConfig Class Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Configuration class for the ImageLoader, holding logger, options, component registry, and interceptors. Provides getters for each property. ```kotlin package com.seiko.imageloader import com.seiko.imageloader.component.ComponentRegistry import com.seiko.imageloader.intercept.Interceptors import com.seiko.imageloader.option.Options import com.seiko.imageloader.util.Logger class ImageLoaderConfig( private val logger: Logger, private val defaultOptions: Options, private val componentRegistry: ComponentRegistry, private val interceptors: Interceptors ) { public fun getComponentRegistry(): ComponentRegistry { // ... returns component registry } public fun getDefaultOptions(): Options { // ... returns default options } public fun getInterceptors(): Interceptors { // ... returns interceptors } public fun getLogger(): Logger { // ... returns logger } } ``` -------------------------------- ### Android ImageLoader Configuration Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/README.md Provides a sample implementation for `generateImageLoader` on Android. It configures memory and disk cache sizes, and sets up default components. ```kotlin fun generateImageLoader(): ImageLoader { return ImageLoader { options { androidContext(applicationContext) } components { setupDefaultComponents(context) } interceptor { // cache 25% memory bitmap bitmapMemoryCacheConfig { maxSizePercent(context, 0.25) } // cache 50 image imageMemoryCacheConfig { maxSize(50) } // cache 50 painter painterMemoryCacheConfig { maxSize(50) } diskCacheConfig { directory(context.cacheDir.resolve("image_cache").toOkioPath()) maxSizeBytes(512L * 1024 * 1024) // 512MB } } } } ``` -------------------------------- ### Fetcher Factories Source: https://github.com/qdsfdhvh/compose-imageloader/blob/master/image-loader/src/androidMain/generated/baselineProfiles/baseline-prof.txt Contains factories for fetching images from various sources like assets, base64 strings, bitmaps, byte arrays, buffers, Compose resources, content URIs, drawables, and network URLs (Ktor). ```kotlin Lcom/seiko/imageloader/component/fetcher/AssetUriFetcher$Factory; HSPLcom/seiko/imageloader/component/fetcher/AssetUriFetcher$Factory;->()V HSPLcom/seiko/imageloader/component/fetcher/AssetUriFetcher$Factory;->(Landroid/content/Context;)V Lcom/seiko/imageloader/component/fetcher/Base64Fetcher$Factory; HSPLcom/seiko/imageloader/component/fetcher/Base64Fetcher$Factory;->()V HSPLcom/seiko/imageloader/component/fetcher/Base64Fetcher$Factory;->()V Lcom/seiko/imageloader/component/fetcher/BitmapFetcher$Factory; HSPLcom/seiko/imageloader/component/fetcher/BitmapFetcher$Factory;->()V HSPLcom/seiko/imageloader/component/fetcher/BitmapFetcher$Factory;->()V Lcom/seiko/imageloader/component/fetcher/ByteArrayFetcher$Factory; HSPLcom/seiko/imageloader/component/fetcher/ByteArrayFetcher$Factory;->()V HSPLcom/seiko/imageloader/component/fetcher/ByteArrayFetcher$Factory;->()V Lcom/seiko/imageloader/component/fetcher/ByteBufferFetcher$Factory; HSPLcom/seiko/imageloader/component/fetcher/ByteBufferFetcher$Factory;->()V HSPLcom/seiko/imageloader/component/fetcher/ByteBufferFetcher$Factory;->()V Lcom/seiko/imageloader/component/fetcher/ComposeResourceFetcher$Factory; HSPLcom/seiko/imageloader/component/fetcher/ComposeResourceFetcher$Factory;->()V HSPLcom/seiko/imageloader/component/fetcher/ComposeResourceFetcher$Factory;->()V Lcom/seiko/imageloader/component/fetcher/ContentUriFetcher$Factory; HSPLcom/seiko/imageloader/component/fetcher/ContentUriFetcher$Factory;->()V HSPLcom/seiko/imageloader/component/fetcher/ContentUriFetcher$Factory;->(Landroid/content/Context;)V Lcom/seiko/imageloader/component/fetcher/DrawableFetcher$Factory; HSPLcom/seiko/imageloader/component/fetcher/DrawableFetcher$Factory;->()V HSPLcom/seiko/imageloader/component/fetcher/DrawableFetcher$Factory;->()V Lcom/seiko/imageloader/component/fetcher/Fetcher; Lcom/seiko/imageloader/component/fetcher/Fetcher$Factory; Lcom/seiko/imageloader/component/fetcher/KtorUrlFetcher; HSPLcom/seiko/imageloader/component/fetcher/KtorUrlFetcher;->()V Lcom/seiko/imageloader/component/fetcher/KtorUrlFetcher$Companion; HSPLcom/seiko/imageloader/component/fetcher/KtorUrlFetcher$Companion;->()V HSPLcom/seiko/imageloader/component/fetcher/KtorUrlFetcher$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V HSPLcom/seiko/imageloader/component/fetcher/KtorUrlFetcher$Companion;->getDefaultHttpEngineFactory()Lkotlin/jvm/functions/Function0; Lcom/seiko/imageloader/component/fetcher/KtorUrlFetcher$Companion$$ExternalSyntheticLambda0; HSPLcom/seiko/imageloader/component/fetcher/KtorUrlFetcher$Companion$$ExternalSyntheticLambda0;->()V Lcom/seiko/imageloader/component/fetcher/KtorUrlFetcher$Factory; HSPLcom/seiko/imageloader/component/fetcher/KtorUrlFetcher$Factory;->(Lkotlin/jvm/functions/Function0;)V Lcom/seiko/imageloader/component/fetcher/OkioPathFetcher$Factory; HSPLcom/seiko/imageloader/component/fetcher/OkioPathFetcher$Factory;->()V HSPLcom/seiko/imageloader/component/fetcher/OkioPathFetcher$Factory;->(Lokio/FileSystem;)V Lcom/seiko/imageloader/component/fetcher/ResourceUriFetcher$Factory; HSPLcom/seiko/imageloader/component/fetcher/ResourceUriFetcher$Factory;->()V HSPLcom/seiko/imageloader/component/fetcher/ResourceUriFetcher$Factory;->(Landroid/content/Context;)V ```