imagej / imagej/imagej2

better APNG support

Open
#193 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
1.4k
Forks
350
PR merge metrics
No merged PRs in 30d

Description

As an alternative to animated GIF format, [APNG](https://en.wikipedia.org/wiki/APNG) has the advantage of being lossless, small in size, support more color depth(16-bit grayscale for example) and supported by [most modern browsers](https://caniuse.com/#feat=apng) etc.

[APNG vs GIF (please use a supported browser to see)](http://apng.onevcat.com/demo/)

Many of these advantages make APNG a light-weight alternative to tif format in some applications, for example sometimes we want to exchange image data between an ImageJ backend and a web browser user interface.

Since ImageJ2 uses SCIFIO by default to open images, we can already import and export multi-frame APNG images (With "`Import->Image...`" menu and "`Export-> Image...`" menu).

So now, would it be possible to consider the following features in ImageJ2?
1. add a menu entry called "`Animated PNG`" in "`Save As`"
2. when applying "`Save As` -> `png`" for a image stack, save the whole stack as a APNG image by default. (currently, it will convert the first frame to RGB mode and only save the first frame as a png image)
3. load all frames when opening a APNG file (already the case when enabling "`Use SCIFIO when opening files`" option)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with ImageJ2's Save As menu, the PNG export path, and the SCIFIO opening option described in the issue. Check how image stacks and APNG files are currently handled, then verify that Animated PNG export, stack saving through Save As → PNG, and loading all APNG frames meet the three requested behaviors.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
desktop
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.