Skip to content

pmnxis/chama-optics

Repository files navigation

Chama Optics

dependency status Build Status

Chama Optics is a program created for recent mirrorless and DSLR cameras,
inspired by the travel VTuber Akai Haato(赤井はあと), who loves photography.

It analyzes the EXIF data embedded in photos along with the user’s settings to resize, compress, and tag images before saving them, while also offering additional convenient features.

This program is developed in Rust using the eframe/egui framework, along with libraries such as libheif and exif-rs.

Current Status

  • Read JPEG/PNG and other common formats
  • Read HEIF photos (libheif)
  • Read EXIF data (supports up to 2.3.x standard; not yet compliant with 3.0)
  • Save photos with selected frames and settings
  • Themes from genally use in another case
  • Read Panasonic lumix LUT/PhotoStyle and Nikon Picture Control names
  • More themes
  • Save photos with EXIF
  • Multi core usage
  • Utilize camera maker logo
  • Watermark feature
  • When loading HEIF / JPEG images, generate thumbnails by prioritizing the Thumbnail / Preview metadata inside EXIF instead of resizing pixels from the full image (improves performance)
  • Feature to create 4-cut or 2-cut photos with idol images, similar to photo sticker booths
  • Function to group similar photos or images taken around the same time
  • Preset and adjustment controls for contrast, brightness, grain, texture, and LUT
  • Web application supports (libheif wasm)

Testing locally

Windows

vcpkg

In Windows OS, need vcpkg to install libheif easily

git clone https://github.com/microsoft/vcpkg.git
cd vcpkg; .\bootstrap-vcpkg.bat
vcpkg integrate install
vcpkg install libheif:x64-windows-static-md
vcpkg install libheif:x64-windows-static
cd ..

Running

:: or cargo run --release
cargo run

:: When you looking for *.exe after release build
:: target/release/chama-optics.exe

macOS

brew install pkgconf libheif
cargo run --release
# When make *.app
./build_mac.sh
cd ./target/release/bundle/osx
open -n "Chama Optics.app"

Linux

Linux has libheif-dev or libheif binding is difficult at first time. Do it yourself up to your environment.

General egui dependency

On Linux you need to first run: sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev

On Fedora Rawhide you need to run: dnf install clang clang-devel clang-tools-extra libxkbcommon-devel pkg-config openssl-devel libxcb-devel gtk3-devel atk fontconfig-devel

Running

# or cargo run --release
cargo run 

License

Most of the code depends on the NON-AI-MIT license, while some portions are under the MIT or Apache 2.0 licenses.

In particular, the image data has been processed by pmnxis, but the original vector icons were used with permission from シエミカ (X: shiemika324).

All icons are strictly prohibited from being used for any form of AI training without exception.

About

The tool embed EXIF or some convenient feature for photo that written in rust

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages