oxipng
oxipng copied to clipboard
Other input formats?
Hello, I used to use optipng on the output of long image processing pipelines and when doing so, I chose the simplest possible interchange format to avoid any useless encoding cost. Usually, it was PPM (since I knew my input didn't have an alpha channel).
Would it be possible for oxipng to support at least one such format? Netpbm would probably be the most suitable and the image crate seems to have support for some of them (https://docs.rs/image/latest/image/codecs/pnm/index.html).
For an idea of the "cost" of using PNG in this situation (multiplied by num_images / num_cpu):
$ magick identify /tmp/tmp.ppm
/tmp/tmp.ppm PPM 5551x6380 5551x6380+0+0 8-bit sRGB 101.324MiB 0.120u 0:00.087
$ time magick convert -define png:compression-level=0 /tmp/tmp.ppm /tmp/tmp.png
magick convert -define png:compression-level=0 /tmp/tmp.ppm /tmp/tmp.png 1.72s user 0.16s system 182% cpu 1.033 total
$ time magick convert /tmp/tmp.ppm /tmp/tmp2.ppm
magick convert /tmp/tmp.ppm /tmp/tmp2.ppm 0.19s user 0.11s system 99% cpu 0.300 total
$ time magick convert /tmp/tmp.ppm /tmp/tmp.pam
magick convert /tmp/tmp.ppm /tmp/tmp.pam 0.18s user 0.11s system 99% cpu 0.289 total
$ time magick convert /tmp/tmp.ppm /tmp/tmp.miff
magick convert /tmp/tmp.ppm /tmp/tmp.miff 0.19s user 0.11s system 99% cpu 0.302 total
Maybe work on https://github.com/shssoichiro/oxipng/issues/376 might help this (or vice versa)?
It is definitely related, at least for internal code structure matters.
I would also be interested in support for GIF and BMP as input formats.
I would also be interested in support for GIF and BMP as input formats.
what do you want to optimize on BMP format, that has no compression?
what do you want to optimize on BMP format, that has no compression?
I want to convert them to PNG, then optimize them. It can be done with sequential commands (convert
then oxipng
), but there is convenience in integrating the format support so things like xargs
and parallel
can be more easily used.
what do you want to optimize on BMP format, that has no compression?
@Vasilich FYI, BMP has optional simple compression. 🙇🏾♂️