Comments (7)
The first step would probably be writing a standalone app using the png
crate to encode a APNG animation. I'd suggest looking through the docs.rs generated documentation and perhaps digging into the crate source code if the process
seems unclear. Roughly, it looks like you need to be create an Encoder
, call set_animated
then write_header
, use write_image_data
to write each successive frame, and then call finish
. Once you're able to generate valid animations, the next step would be porting it to the API used by this crate so that it can be merged here.
from image.
No, I think you're right that GIFs are the only animated format we currently support on the encoding side. The focus of this crate is on images rather than videos, but reach out if you'd be interested in working on a PR to add animated PNG/webp/etc.
from image.
@fintelia yes i'm interested in working on such a pr, but i'll need some guidance :)
from image.
Which format are you hoping to add? The first step would be to look at how the encoding for that format is currently implemented, and see what pieces are already in place for handling animation.
from image.
@fintelia i think png would be a good start since i want it to run on wasm and can't find any pure rust encoders for webp or avif (yet), there's pure rust apng encoding support in https://github.com/poccariswet/apng, which can be used as inspiration
from image.
In fact, given that the PNG crate already implements a set_animated method, I think a lot of the pieces may already be in place
from image.
hi @fintelia just wanted to follow up on this, can u please provide some high level guidance on what needs to be done here? this is likely the lowest level thing i've ever done, but i think i can get it done with your help :)
from image.
Related Issues (20)
- How to set the DPI of an image before saving it? HOT 1
- DynamicImage.view().to_image() results in Rgba8 buffer even when source isn't HOT 2
- Moving `imageops` and similar functionality to the `imageprocs` crate HOT 8
- JpegEncoder is very slow! HOT 2
- Add missing map2/apply2 functions to `Pixel` trait HOT 4
- PBM encoder is incorrect for ASCII, aka PnmSubtype::Bitmap(SampleEncoding::Ascii) HOT 1
- Proposal: more aggressive feature flags HOT 4
- Version 0.26.x HOT 4
- Opening and saving an sRGB image yields different colors HOT 5
- PNG (and probably AVIF) encoding with compression too slow HOT 6
- Format error decoding Jpeg: invalid JPEG format: JPGn(7) marker found where not allowed HOT 5
- Add serde support for image::ImageFormat HOT 2
- JPEG decoding inconsistent with other (non-Rust libraries) HOT 1
- Invert Alpha method HOT 5
- Switch to the `rgb` crate `v0.9` pixel types and trait. HOT 1
- Format error decoding Png: Invalid PNG signature. When reading png with embedded color profile
- Building with default features on macOS requires rustc v1.79 or newer. HOT 6
- Creating a new `PixelImage` type. HOT 6
- Animated WebP's cannot actually be loaded
- Animated PNG is decoded incorrectly
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from image.