Skip to content

๐Ÿ“ธ Simple, ad-free Android app for stitching long Picture | ็ฎ€ๅ•ๆ˜“็”จใ€ๆ— ๅนฟๅ‘Š็š„ๅฎ‰ๅ“้•ฟๅ›พๆ‹ผๆŽฅๅทฅๅ…ท

License

Notifications You must be signed in to change notification settings

ReRokutosei/Chimera

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

74 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation


Chimera

Kotlin Release
GPLv3 API
Jetpack Compose material
DeepWiki

English | ็ฎ€ไฝ“ไธญๆ–‡

๐Ÿ—บ๏ธ Project Overview

Chimera is a modern Android image stitching application

Developed using Kotlin and Jetpack Compose

Allows stitching multiple images into a long or wide image in different modes

Supports JPEG, PNG, WEBP

Support: English, Spanish, Japanese, Simplified Chinese, Traditional Chinese (HK), Traditional Chinese (TW)

๐ŸŒŸ Core Features

๐Ÿ–ผ๏ธ Multiple Image Selection Methods

Selector

The app supports multiple selectors and can be used even without granting any permissions:

  1. Photo Picker

    • No permissions required
    • Compatible with SDK 31+ or devices that can receive Google component updates
    • Google-recommended modern selection method
    • However, when selecting multiple images, the URL order may be scrambled, and it can only view albums (photo pages) stored in the public Picture directory
  2. Embedded Picker

    • Requires storage permission: READ_MEDIA_IMAGES (SDK 33+) or READ_EXTERNAL_STORAGE (SDK 32-)
    • Powerful selector extracted from the ImageToolbox project, supports search and album viewing
    • Beautiful interface that solves Photo Picker issues
  3. Storage Access Framework Selector (SAF)

    • No permissions required
    • Compatible with all SDK versions (29-36)
    • Secure file access through system file picker

๐Ÿ”ง Stitching Modes

๐Ÿ“ Direct Stitching

  • Horizontal stitching: Arrange images from left to right horizontally
  • Vertical stitching: Arrange images from top to bottom vertically
  • Image spacing: Supports 0-50px image spacing settings, filled with black pixels
  • Width/Height scaling:
    • Minimum: Scale all images to the minimum width/height
    • Original: Keep original image dimensions
    • Maximum: Scale all images to the maximum width/height
  • Image reordering: After selecting images, you can long-press and drag selected images to change order

๐ŸŽฏ Overlay Stitching

  • Image overlay stitching: Display part of one image overlaid with the next image, can be used to create video subtitle screenshots
  • Overlay area ratio: Adjustable overlay area ratio from 0-100%

๐ŸŽจ Personalized Themes

  • ๐ŸŒ™ Dark mode: Supports manual switching and following system settings
  • ๐ŸŒˆ Dynamic color theme: Dynamic theme colors based on system wallpaper color (Android 12+ only)
    • Note: Requires using native Android wallpaper app, third-party wallpaper programs including some OEM manufacturers' cannot be recognized
  • ๐ŸŽ€ Predefined color schemes: Bocchi, Nijika, Ryo, Kita themes
  • ๐Ÿ–Œ๏ธ Custom colors: Can create custom color schemes

โš™๏ธ Settings Options

  • ๐Ÿ’พ Image output settings: Supports PNG, JPEG and WEBP formats, adjustable output quality (PNG default lossless, not adjustable)
  • โšก Multi-threaded acceleration: When enabled, will use parallel acceleration process
  • ๐Ÿง  Increase memory threshold: Default memory threshold is 50% of device RAM, when enabled will increase to 80%

๐Ÿ“ฒ Usage

  1. ๐Ÿš€ Open the Chimera app
  2. ๐Ÿ–ผ๏ธ Click the "Select Images" button to select images to stitch
  3. โš™๏ธ Adjust stitching parameters (direction, scaling mode, spacing, etc.)
  4. ๐Ÿงฑ Click the "Start Stitching" button
  5. ๐Ÿ‘€ Preview the stitching result on the result page, can choose to save to album or share with other apps

๐Ÿ—๏ธ Technical Architecture

๐Ÿข Architecture Pattern

  • MVVM architecture pattern: Uses Model-View-ViewModel architecture to separate data logic and UI logic
  • Single Activity with multiple Compose interfaces: The entire app is built on a single Activity and multiple Compose interfaces

๐Ÿ’ป Technology Stack

  • Kotlin & Coroutines
  • Jetpack Compose
  • Android Architecture Components

โš ๏ธ Technical Limitations and Notes

๐Ÿ“ Image Format Limitations

Image stitching is limited by both file format technical specifications and device memory:

  • JPEG: Technical maximum size is 65,535 ร— 65,535 pixels (16-bit limit), App defaults to JPEG format output
  • WebP: Whether lossless or lossy, the maximum size is typically limited to around 16,384 ร— 16,384 pixels
  • PNG: Technical maximum size up to 4,294,967,295 ร— 4,294,967,295 pixels (32-bit unsigned integer limit), theoretically the highest

๐Ÿ’พ Memory Limitations

Important

Regardless of format, the biggest limitation in actual operation is device memory (RAM) and Android VM mechanism limitations.

The memory required for decoding large images (width ร— height ร— 4 bytes/pixel) can easily cause app crashes (OOM Crash).

If you have many or large images, it is recommended to go to settings and adjust to PNG format and enable increased memory threshold.

App supports processing over 100 images, but requires significant RAM. Due to Android VM limitations, we recommend using a desktop application for large batches.

๐Ÿž Known Issues

Testing shows that PhotoPicker (PickMultipleVisualMedia) does not guarantee the order of returned URIs. When users select many images, the returned list order may be scrambled. This is a known platform issue that Google has not fixed.

Related issue discussion link: https://issuetracker.google.com/issues/264215151

For Embedded Picker and SAF selectors, image order is correct.

๐Ÿ“ฆ Installation

You can obtain the app through the following methods:

  1. ๐Ÿ“ฅ Download the latest APK file from GitHub Releases
  2. ๐Ÿ”ง Clone the source code and build the project yourself

๐Ÿ”จ Building the Project

Click Here

๐Ÿ› ๏ธ Environment Requirements

  • Android Studio Narwhal | 2025.1.3 (or higher)

  • JDK 21 (recommended to use Android Studio's built-in JetBrains Runtime 21)

  • Android SDK obtained through Android Studio

๐Ÿ“‹ Build Steps

1. ๐Ÿ“‚ Shallow clone the project locally:

git clone --depth 1 https://github.com/ReRokutosei/Chimera.git

2. ๐Ÿ’ผ Open the project in Android Studio

3. ๐Ÿ“ Create local.properties in the root directory and write your SDK path

// For example
sdk.dir=D\:\\yourpath\\AndroidSdk

4. ๐Ÿ” Generate signing key

Click the Build menu at the top of Android Studio

-> Generate Signed App Bundle or APK

-> Follow instructions to generate key

-> Store key in ./keystore/Chimera.jks

5. โš™๏ธ Create gradle.properties in user home directory

  • In your local development environment, create Gradle config file at:

  • Windows: C:\Users\{username}\.gradle\gradle.properties

  • macOS/Linux: ~/.gradle/gradle.properties

  • Add your signing configuration to this file:

KEYSTORE_PATH=../keystore/Chimera.jks
KEYSTORE_PASSWORD=yourpassword
KEY_ALIAS=chimera_release
KEY_PASSWORD=yourpassword

6. ๐Ÿ”„ Click Gradle Sync in Android Studio

7. ๐Ÿ—๏ธ Build the project:

./gradlew assembleRelease

๐Ÿ” Privacy Policy

This app does not request any network permissions, does not collect, store, process, or transmit any of your personal information. All operations are performed locally on your device.

See Privacy Policy file for details.

โš ๏ธ Disclaimer

The app is provided "as is" without any warranties. We are not responsible for any consequences arising from the use of this app.

See Disclaimer file for details.

๐Ÿ“œ License

This project is licensed under the GNU General Public License v3.0. See LICENSE file for details.

๐Ÿ™ Resource Information

๐Ÿงฐ ImageToolbox

This project uses Embedded Picker, Fancy Slider, Image Reorder Carousel components from ImageToolbox (Apache License 2.0), thanks to the original project contributors for their excellent work!

See directory ./t8rin for details

If you have more image processing needs, I highly recommend trying the powerful ImageToolbox

๐ŸŽจ App Icon

App Icon Design by Freepik

๐Ÿ–ผ๏ธ Demo Images

The background of the app Settings page, and README Screenshots are from the anime "Bocchi the Rock!", copyright belongs 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 4

  •  
  •  
  •  
  •  

Languages