Skip to content

About

C#/.NET desktop image transformation studio for creative image processing and morphing workflows.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

JASS ImageMorph Studio — C# v1.6

A polished WPF/.NET 8 desktop studio for creating image morph animations with G'MIC and FFmpeg.

v1.6 highlights

  • Modern WPF studio UI
  • Drag & drop image import
  • Source previews and workspace
  • G'MIC morph engine with 2–300 base frames
  • 12 / 15 / 24 / 25 / 30 / 60 FPS
  • Live duration estimate
  • Ping-Pong motion: Image A → Image B → Image A
  • MP4 / GIF / PNG Frames output
  • H.264 quality presets:
    • Draft — CRF 28 / veryfast
    • Standard — CRF 23 / medium
    • High — CRF 18 / medium
    • Maximum — CRF 16 / slow
  • FFmpeg image2 numbered-frame pipeline
  • MP4 faststart flag for easier web playback
  • G'MIC/FFmpeg automatic discovery
  • Processing progress and console log
  • Cancellation
  • Output validation
  • Open output / folder shortcuts
  • Copy G'MIC command

Duration

Base duration is approximately base frames / FPS. With Ping-Pong enabled, output frames are 2 × base frames − 1, giving approximately twice the forward duration while returning to the first image.

Examples:

  • 30 frames @ 30 FPS → ~1.00 sec
  • 60 frames @ 30 FPS → ~2.00 sec
  • 30 frames @ 30 FPS + Ping-Pong → ~1.97 sec
  • 60 frames @ 30 FPS + Ping-Pong → ~3.97 sec

Requirements

  • Windows 10/11
  • .NET 8 SDK/runtime
  • G'MIC CLI
  • FFmpeg with libx264 support

The application can discover G'MIC and FFmpeg from PATH and several common Windows locations. A known G'MIC CLI location is also supported.

Build

dotnet restore
dotnet build -c Release
dotnet run --project .\ImageMorphStudio\ImageMorphStudio.csproj

Publish

dotnet publish .\ImageMorphStudio\ImageMorphStudio.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true

Pipeline

Image 1 + Image 2 → G'MIC -morph → normalized numbered PNG frames → optional Ping-Pong sequence → FFmpeg image2 → MP4 / GIF

FFmpeg's image2 demuxer is used because it is intended for creating video from numbered image sequences. H.264 MP4 uses libx264 CRF/preset controls.

Roadmap

  • Keypoint / RBF morph editor
  • Multi-image timeline
  • Batch queue
  • Transition effects
  • Project save/load
  • Frame browser/contact sheet
  • Preset library

v1.6 reliability improvements

  • Automatically normalizes both source images to the first image's pixel dimensions before morphing.
  • Forces RGB mode before G'MIC morphing. G'MIC documents resize for exact geometry and to_rgb for forcing RGB mode.
  • Captures G'MIC/FFmpeg stdout and stderr and includes diagnostics when a process exits non-zero.
  • Makes G'MIC failures actionable instead of showing only an exit code.

v1.8 — H.264 even-dimension fix

This release fixes an FFmpeg/libx264 failure when the normalized source image has an odd width or height. The MP4 pipeline uses yuv420p, which requires compatible even dimensions; v1.8 therefore converts the common render size to the nearest lower even dimensions before G'MIC morphing. For example, a 985x1392 source becomes 984x1392.

The application logs the original and adjusted dimensions so the normalization is visible.

About

C#/.NET desktop image transformation studio for creative image processing and morphing workflows.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages