back to home

ismoy / ImagePickerKMP

ImagePickerKMP – Cross‑platform Image Picker & Camera Library (Android & iOS) built with Kotlin Multiplatform + Compose Multiplatform.

View on GitHub
161 stars
15 forks
1 issues
KotlinJavaScriptShell

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing ismoy/ImagePickerKMP in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/ismoy/ImagePickerKMP)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

ImagePickerKMP **Cross-platform Image Picker & Camera Library for Kotlin Multiplatform** Easily capture or select images on Android, iOS, Desktop, and Web — all with a single API. Built with **Compose Multiplatform**, designed for **simplicity, performance, and flexibility**. --- > **ImagePickerKMP saves you 2 weeks of native Android/iOS/Web integration work.** > It's free and open source. If your app or company benefits from it, consider sponsoring to keep it maintained and updated with every new KMP/Compose release. > → Become a sponsor --- Example **Complete Example App** ** ImagePickerKMP-Example →** Full-featured sample application showcasing: • All library features and configurations Quick Start ⚠️ Requirements | Requirement | Minimum version | |---|---| | **Kotlin** | **2.3.20** *(breaking change — see CHANGELOG)* | | Compose Multiplatform | 1.10.3 | | Ktor | 3.4.1 | | Android | 24 | | Android | 36 | > **Note:** This library is compiled with Kotlin 2.3.20. Projects using Kotlin **💡 Always wrap the camera launcher inside a composable container (Box, Column, Row) and control its visibility with state.** > > *Thanks to @rnstewart and other contributors for pointing this out! 🙏* Key Features • **Cross-platform** - Android, iOS, Desktop, Web • **Camera & Gallery** - Direct access with unified API • **Image Cropping** - Built-in crop functionality • **Smart Compression** - Configurable quality levels • **EXIF Metadata** - GPS, camera info, timestamps (Android/iOS) • **PDF Support** - Select PDF documents alongside images • **Extension Functions** - Easy image processing ( , , ) • **Permission Handling** - Automatic permission management • **Async Processing** - Non-blocking UI with coroutines • **Format Support** - JPEG, PNG, HEIC, HEIF, WebP, GIF, BMP, PDF Platform Support | Platform | Minimum Version | Camera | Gallery | Crop | EXIF | Status | |----------|----------------|--------|---------|------|------|--------| | Android | API 21+ | ✅ | ✅ | ✅ | ✅ | ✅ | | iOS | iOS 12.0+ | ✅ | ✅ | ✅ | ✅ | ✅ | | Desktop | JDK 11+ | ❌ | ✅ | ✅ | ❌ | ✅ | | JS/Web | Modern Browsers| ❌ | ✅ | ✅ | ❌ | ✅ | | Wasm/Web | Modern Browsers| ✅ | --- Live Demos **Online Demos** ** View Interactive Demos →** Experience ImagePickerKMP in action: • **Mobile Demos** - Android & iOS camera/gallery functionality • **Desktop Demo** - File picker and image processing • **Web Demo** - React integration with WebRTC camera • **Crop Demo** - Interactive image cropping across platforms Documentation **Complete Guides** | Resource | Description | |----------|-------------| | Integration Guide | Complete setup and configuration | | Customization Guide | UI customization and theming | | React Guide | Web development setup | | Permissions Guide | Platform permissions | | API Reference | Complete API documentation | Advanced Configuration Image Compression EXIF Metadata Extraction EXIF Metadata Extraction Multiple Selection with Filtering iOS Permissions Setup Add to your : Extension Functions Process images easily with built-in extension functions: Experimental Cloud OCR Need to extract text from images or documents? Try the new experimental OCR functionality: More Options SCustom OCR service with simple authentication: Service without authentication (local or public): Service with custom headers: Service using JSON request format: Options • **RequestFormat.MULTIPART_FORM**: For APIs expecting . • **RequestFormat.JSON**: For APIs expecting JSON with a Base64-encoded image. --- Fields available in CloudOCRProvider.Custom null MULTIPART_FORM JSON`). • **model** (optional): Specific model to use. **Supported Providers**: Gemini, OpenAI, Claude, Azure, Ollama, and custom services. --- React/Web Integration ImagePickerKMP is available as an NPM package for web development: Features: • **WebRTC Camera Access** - Mobile & desktop camera support • **TypeScript Support** - Full type definitions included • **Drag & Drop** - File picker with drag and drop • **React Components** - Ready-to-use React components • **Cross-Framework** - Works with React, Vue, Angular, Vanilla JS Smart Gallery vs File Explorer Detection • **Images**: Opens native Android gallery for photos • **PDFs**: Opens file explorer for document access • **Mixed Types**: Automatically chooses best picker for content type • **Automatic Detection**: No configuration needed - works out of the box! **Complete React Integration Guide →** Support & Contributing • Report Issues • Discord Community • Contributing Guide • Email Support --- Sponsors & Backers ImagePickerKMP is free and open source. Maintaining it across **Android, iOS, Desktop, Web and WASM** with every Kotlin/Compose Multiplatform release takes real time and effort. If this library saves you time or money in production, please consider supporting it: | Tier | Amount | Benefit | |------|--------|---------| | ☕ Coffee | $5/mo | Name in the backers list | | 🥈 Silver | $25/mo | Logo in README + priority issue response | Current Sponsors james-codersHT > Sponsors get their name/logo displayed here. → Become a sponsor --- Contributors Thanks goes to these wonderful people (emoji key): ismoy 💻 📖 🚧 This project follows the all-contributors specification. Contributions of any kind welcome! --- **Made with ❤️ for the Kotlin Multiplatform community** *Star this repo if it helped you!*