English | 简体中文
Chimera is a modern Android image stitching utility built with Kotlin and Jetpack Compose. It provides multiple synthesis modes to create seamless vertical or horizontal composites.
Supporting JPEG, PNG, and WEBP, Chimera features a fully offline design, enabling complex processing without any network permissions. The app is deeply integrated with the Material You dynamic color system for a native, fluid experience.
The app offers three selection strategies to balance privacy and advanced functionality:
- System Photo Picker: The recommended modern choice. Requires zero permissions (Android 13+ / SDK 31+).
- Embedded Picker: An advanced selector ported from the ImageToolbox project. It supports metadata search and album categorization while mitigating platform-specific URI ordering bugs found in the system picker.
- Storage Access Framework (SAF): Secure image access through system-level file management, compatible with SDK 29-36.
- Direct Stitching:
- Horizontal (left-to-right) or Vertical (top-to-bottom) layouts.
- Adjustable image spacing (0-50px).
- Three scaling strategies: Fit to Smallest, Preserve Original, or Fit to Largest.
- Long-press and drag to reorder selected images.
- Overlay Compositing:
- Create overlaps between images, ideal for video subtitle screenshots.
- Precision control over the overlapping area ratio (0-100%).
- Theming: Dark Mode support and Material You dynamic coloring based on system wallpaper.
- Note: If using auto-rotating wallpaper services (e.g., Mi Carousel), the dynamic color system will capture the static wallpaper set by the OS rather than the rotating service's image. This is a system limitation, not a bug.
- Performance: Optional multi-threaded acceleration via Kotlin Coroutines and manual memory allocation threshold overrides.
- Output Control: Export to JPEG, PNG, or WEBP with granular quality settings.
Expand for Memory & Format Details
Stitching scale is governed by file format limits:
- JPEG: Hard limit of 65,535 × 65,535 pixels.
- WebP: Typical limit around 16,384 × 16,384 pixels.
- PNG: Theoretically massive (32-bit unsigned integer limit), best for extreme composites.
Due to Android VM architecture, processing large bitmaps (Width × Height × 4 bytes/pixel) is RAM-intensive. If the app crashes during heavy tasks:
- Enable "Increase Memory Threshold" in Settings.
- Switch output format to PNG.
- For ultra-large datasets, a desktop-based utility is recommended.
- Photo Picker Ordering: Due to an unpatched Android platform bug, the system Photo Picker may return URIs in an arbitrary order. Use "Embedded Picker" or "SAF" if selection order is critical.
Expand for Dev Environment & Build Steps
- Android Studio Panda 2 | 2025.3.2 or newer.
- JDK 21.
- Android SDK.
- Clone:
git clone --depth 1 https://github.com/ReRokutosei/Chimera.git - SDK Setup: Define
sdk.dirin your rootlocal.properties. - Signing: Add the following to your user-level
gradle.properties(Windows:%USERPROFILE%\.gradle\gradle.properties):KEYSTORE_PATH=../keystore/Chimera.jks KEYSTORE_PASSWORD=yourpassword KEY_ALIAS=chimera_release KEY_PASSWORD=yourpassword
- Build: Execute
./gradlew assembleRelease.
- Privacy Policy: No network permissions requested; zero data collection. All processing remains local. See Privacy Policy.
- Disclaimer: Provided "as is" without warranty. See Disclaimer.
- License: Licensed under the GNU General Public License v3.0 (GPLv3). See LICENSE.
- ImageToolbox: Special thanks to the ImageToolbox project for the Embedded Picker, Fancy Slider, and Image Reorder Carousel components.
- Icon Design: App icon designed by Freepik.
- Copyright Notice: Background assets and screenshots are sourced from the anime "Bocchi the Rock!". All rights reserved to:
©HAMAJI AKI・Houbunsha/Bocchi the Rock! Production Committee
Click Here to View
- AboutLibraries Core Library 13.2.1 | Under Apache License 2.0
- Accompanist Drawable Painter library 0.32.0 | Under Apache License 2.0
- Activity 1.13.0 | Under Apache License 2.0
- Activity Compose 1.13.0 | Under Apache License 2.0
- Activity Kotlin Extensions 1.13.0 | Under Apache License 2.0
- Android App Startup Runtime 1.1.1 | Under Apache License 2.0
- Android Arch-Common 2.2.0 | Under Apache License 2.0
- Android Arch-Runtime 2.2.0 | Under Apache License 2.0
- Android ConstraintLayout 2.1.0 | Under Apache License 2.0
- Android ConstraintLayout Core 1.0.0 | Under Apache License 2.0
- Android Graphics Path 1.0.1 | Under Apache License 2.0
- Android Resource Inspection - Annotations 1.0.1 | Under Apache License 2.0
- Android Tracing 1.2.0 | Under Apache License 2.0
- AndroidX Autofill 1.0.0 | Under Apache License 2.0
- AndroidX Futures 1.1.0 | Under Apache License 2.0
- AndroidX Widget ViewPager2 1.0.0 | Under Apache License 2.0
- androidx.core:core-viewtree 1.0.0 | Under Apache License 2.0
- androidx.customview:poolingcontainer 1.0.0 | Under Apache License 2.0
- Annotation 1.9.1 | Under Apache License 2.0
- Annotation 1.9.3 | Under Apache License 2.0
- AppCompat 1.7.1 | Under Apache License 2.0
- AppCompat Resources 1.7.1 | Under Apache License 2.0
- coil 2.7.0 | Under Apache License 2.0
- coil-base 2.7.0 | Under Apache License 2.0
- coil-compose 2.7.0 | Under Apache License 2.0
- coil-compose-base 2.7.0 | Under Apache License 2.0
- collections 1.5.0 | Under Apache License 2.0
- collections 1.9.3 | Under Apache License 2.0
- Collections Kotlin Extensions 1.5.0 | Under Apache License 2.0
- colorpicker-compose 1.1.3 | Under Apache License 2.0
- Compose Animation 1.11.0-alpha06 | Under Apache License 2.0
- Compose Animation 1.9.3 | Under Apache License 2.0
- Compose Animation Core 1.11.0-alpha06 | Under Apache License 2.0
- Compose Animation Core 1.9.3 | Under Apache License 2.0
- Compose Foundation 1.11.0-alpha06 | Under Apache License 2.0
- Compose Foundation 1.9.3 | Under Apache License 2.0
- Compose Geometry 1.11.0-alpha06 | Under Apache License 2.0
- Compose Geometry 1.9.3 | Under Apache License 2.0
- Compose Graphics 1.11.0-alpha06 | Under Apache License 2.0
- Compose Graphics 1.9.3 | Under Apache License 2.0
- Compose Layouts 1.11.0-alpha06 | Under Apache License 2.0
- Compose Layouts 1.9.3 | Under Apache License 2.0
- Compose Material Icons Core 1.7.8 | Under Apache License 2.0
- Compose Material Icons Extended 1.7.8 | Under Apache License 2.0
- Compose Material Ripple 1.10.5 | Under Apache License 2.0
- Compose Material3 Components 1.5.0-alpha15 | Under Apache License 2.0
- Compose Navigation 2.9.7 | Under Apache License 2.0
- Compose Runtime 1.11.0-alpha06 | Under Apache License 2.0
- Compose Runtime 1.9.3 | Under Apache License 2.0
- Compose Runtime Annotation 1.11.0-alpha06 | Under Apache License 2.0
- Compose Runtime Retain 1.11.0-alpha06 | Under Apache License 2.0
- Compose Saveable 1.11.0-alpha06 | Under Apache License 2.0
- Compose Saveable 1.9.3 | Under Apache License 2.0
- Compose Testing manifest dependency 1.11.0-alpha06 | Under Apache License 2.0
- Compose Tooling 1.11.0-alpha06 | Under Apache License 2.0
- Compose Tooling Data 1.11.0-alpha06 | Under Apache License 2.0
- Compose UI 1.11.0-alpha06 | Under Apache License 2.0
- Compose UI Preview Tooling 1.11.0-alpha06 | Under Apache License 2.0
- Compose UI primitives 1.9.3 | Under Apache License 2.0
- Compose UI Text 1.11.0-alpha06 | Under Apache License 2.0
- Compose UI Text 1.9.3 | Under Apache License 2.0
- Compose Unit 1.11.0-alpha06 | Under Apache License 2.0
- Compose Unit 1.9.3 | Under Apache License 2.0
- Compose Util 1.11.0-alpha06 | Under Apache License 2.0
- Compose Util 1.9.3 | Under Apache License 2.0
- Core 1.18.0 | Under Apache License 2.0
- Core Kotlin Extensions 1.18.0 | Under Apache License 2.0
- DataStore 1.2.1 | Under Apache License 2.0
- DataStore Core 1.2.1 | Under Apache License 2.0
- DataStore Core Okio 1.2.1 | Under Apache License 2.0
- DynamicAnimation 1.1.0 | Under Apache License 2.0
- Emoji2 1.4.0 | Under Apache License 2.0
- Emoji2 Views Helper 1.4.0 | Under Apache License 2.0
- error-prone annotations 2.15.0 | Under Apache License 2.0
- Experimental annotation 1.4.1 | Under Apache License 2.0
- Graphics Shapes 1.0.1 | Under Apache License 2.0
- Guava ListenableFuture only 1.0 | Under Apache License 2.0
- JetBrains Java Annotations 23.0.0 | Under Apache License 2.0
- Jetpack Compose Libraries BOM 2026.03.00 | Under Apache License 2.0
- JSpecify annotations 1.0.0 | Under Apache License 2.0
- Kotlin Libraries bill-of-materials 1.8.22 | Under Apache License 2.0
- Kotlin Stdlib 2.3.20 | Under Apache License 2.0
- Kotlin Stdlib Common 2.3.20 | Under Apache License 2.0
- Kotlin Stdlib Jdk7 1.8.21 | Under Apache License 2.0
- Kotlin Stdlib Jdk8 1.8.21 | Under Apache License 2.0
- kotlinx-collections-immutable 0.4.0 | Under Apache License 2.0
- kotlinx-coroutines-android 1.9.0 | Under Apache License 2.0
- kotlinx-coroutines-bom 1.9.0 | Under Apache License 2.0
- kotlinx-coroutines-core 1.9.0 | Under Apache License 2.0
- kotlinx-serialization-bom 1.10.0 | Under Apache License 2.0
- kotlinx-serialization-core 1.10.0 | Under Apache License 2.0
- kotlinx-serialization-json 1.10.0 | Under Apache License 2.0
- Lifecycle Kotlin Extensions 2.10.0 | Under Apache License 2.0
- Lifecycle LiveData 2.10.0 | Under Apache License 2.0
- Lifecycle LiveData Core 2.10.0 | Under Apache License 2.0
- Lifecycle Process 2.10.0 | Under Apache License 2.0
- Lifecycle Runtime 2.10.0 | Under Apache License 2.0
- Lifecycle Runtime 2.9.6 | Under Apache License 2.0
- Lifecycle Runtime Compose 2.10.0 | Under Apache License 2.0
- Lifecycle Runtime Compose 2.9.6 | Under Apache License 2.0
- Lifecycle ViewModel 2.10.0 | Under Apache License 2.0
- Lifecycle ViewModel 2.9.6 | Under Apache License 2.0
- Lifecycle ViewModel Compose 2.10.0 | Under Apache License 2.0
- Lifecycle ViewModel Kotlin Extensions 2.10.0 | Under Apache License 2.0
- Lifecycle ViewModel with SavedState 2.10.0 | Under Apache License 2.0
- Lifecycle ViewModel with SavedState 2.9.6 | Under Apache License 2.0
- Lifecycle-Common 2.10.0 | Under Apache License 2.0
- Lifecycle-Common 2.9.6 | Under Apache License 2.0
- Lifecycle-Common for Java 8 2.10.0 | Under Apache License 2.0
- LiveData Core Kotlin Extensions 2.10.0 | Under Apache License 2.0
- Material Components for Android 1.13.0 | Under Apache License 2.0
- Navigation Common 2.9.7 | Under Apache License 2.0
- Navigation Event 1.0.0 | Under Apache License 2.0
- Navigation Runtime 2.9.7 | Under Apache License 2.0
- NavigationEvent Compose 1.0.0 | Under Apache License 2.0
- okhttp 4.12.0 | Under Apache License 2.0
- okio 3.9.1 | Under Apache License 2.0
- Parcelize Runtime 2.3.20 | Under Apache License 2.0
- Preferences DataStore 1.2.1 | Under Apache License 2.0
- Preferences DataStore Core 1.2.1 | Under Apache License 2.0
- Preferences DataStore Proto 1.2.1 | Under Apache License 2.0
- Preferences External Protobuf 1.2.1 | Under BSD 3-Clause "New" or "Revised" License
- Profile Installer 1.4.1 | Under Apache License 2.0
- Reorderable 3.0.0 | Under Apache License 2.0
- Saved State 1.4.0 | Under Apache License 2.0
- Saved State 1.3.6 | Under Apache License 2.0
- Saved State Compose 1.4.0 | Under Apache License 2.0
- Saved State Compose 1.3.6 | Under Apache License 2.0
- SavedState Kotlin Extensions 1.4.0 | Under Apache License 2.0
- SubsamplingScaleImageView 3.10.0 | Under Apache License 2.0
- Support AnimatedVectorDrawable 1.1.0 | Under Apache License 2.0
- Support CardView v7 1.0.0 | Under Apache License 2.0
- Support Coordinator Layout 1.1.0 | Under Apache License 2.0
- Support Cursor Adapter 1.0.0 | Under Apache License 2.0
- Support Custom View 1.1.0 | Under Apache License 2.0
- Support Drawer Layout 1.1.1 | Under Apache License 2.0
- Support ExifInterface 1.1.0 | Under Apache License 2.0
- Support fragment 1.5.4 | Under Apache License 2.0
- Support Interpolators 1.0.0 | Under Apache License 2.0
- Support loader 1.0.0 | Under Apache License 2.0
- Support RecyclerView 1.2.1 | Under Apache License 2.0
- Support VectorDrawable 1.1.0 | Under Apache License 2.0
- Support View Pager 1.0.0 | Under Apache License 2.0
- Transition 1.5.0 | Under Apache License 2.0
- VersionedParcelable 1.1.1 | Under Apache License 2.0
- WindowManager 1.5.0 | Under Apache License 2.0
- WindowManager Core 1.5.0 | Under Apache License 2.0

