Skip to content

ReRokutosei/Chimera

Repository files navigation


Chimera

Kotlin Release
GPLv3 API
Jetpack Compose material
DeepWiki

English | 简体中文

🗺️ Project Overview

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.

🌟 Core Features

Image Selection Methods

Selector

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.

Synthesis Modes

  • 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%).

Personalization & Performance

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

⚠️ Technical Limitations

Expand for Memory & Format Details

Format Specifications

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.

Memory Constraints (OOM)

Due to Android VM architecture, processing large bitmaps (Width × Height × 4 bytes/pixel) is RAM-intensive. If the app crashes during heavy tasks:

  1. Enable "Increase Memory Threshold" in Settings.
  2. Switch output format to PNG.
  3. For ultra-large datasets, a desktop-based utility is recommended.

Known Issues

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

🔨 Building the Project

Expand for Dev Environment & Build Steps

Prerequisites

  • Android Studio Panda 2 | 2025.3.2 or newer.
  • JDK 21.
  • Android SDK.

Build Guide

  1. Clone: git clone --depth 1 https://github.com/ReRokutosei/Chimera.git
  2. SDK Setup: Define sdk.dir in your root local.properties.
  3. 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
  4. Build: Execute ./gradlew assembleRelease.

🔐 Legal & Privacy

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

🙏 Credits & Acknowledgments

  • 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

📚 Dependencies

Click Here to View

About

📸 Simple, ad-free Android app for stitching long Picture | 简单易用、无广告的安卓长图拼接工具

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages