Core Xii
|
|
« on: March 28, 2010, 07:44:25 AM » |
|
After searching this for myself online I have doubts that such a thing even exists, but on the off chance that it does, here goes nothing.
I need a free, graphical, batch-oriented, preferably cross-platform application for optimizing PNG images for file size. Don't even bother suggesting the more popular programs unless you are an expert on the subject. I've looked at them, and they don't live up to my expectations. I'm talking about real optimization here, taking into account indexing, with alpha, if applicable (all popular apps just assume 24-bit mode rather than actually try if indexing is smaller when alpha is present, go figure), brute-force searching all the different filters (both global and per-row) and algorithms (compression, memory levels, strategies and windows) all in-memory and multi-threaded.
|
|
|
Logged
|
|
|
|
Hajo
|
|
« Reply #1 on: March 28, 2010, 07:58:45 AM » |
|
This does a brute force search and is available in source so you can port it to other platforms (I've only used the windows variant so far). Works from the command line, thus suitable for batch processing: http://optipng.sourceforge.net/Edit: I'm sorry if this falls under the "more popular" exclusion clause. It worked for me, preserves alpha, and since there were no other answers yet, I thought I suggest it. Edit 2: It also fails at the multithreaded and "graphical" requirements, so feel free to ignore it. I'm also no expert, so I guess it was a mistake to try and make a suggestion. I leave this message still, maybe the tool is useful for someone else who did not yet know about it, and has a shorter list of constraints ...
|
|
« Last Edit: March 28, 2010, 08:04:27 AM by Hajo »
|
Logged
|
Per aspera ad astra
|
|
|
increpare
Guest
|
|
« Reply #2 on: March 28, 2010, 09:17:32 AM » |
|
If it's batch-oriented, presumably it's not as important that it be multi-threaded?
|
|
|
Logged
|
|
|
|
kyn
|
|
« Reply #3 on: March 28, 2010, 09:42:07 AM » |
|
Woah, this is excellent. As it turns out the PNG's I export with Flash are extremely unoptimized. I got optimizations as far as 60% size decrease.
|
|
|
Logged
|
|
|
|
hexageek
|
|
« Reply #4 on: March 28, 2010, 09:55:31 AM » |
|
you have a very strange way of asking help. this is what yahoo! recommends for png optimization for web: http://pmt.sourceforge.net/pngcrush/ I hope it's unpopular enough. for the batch processing, any command line application will do, you just need to write an appropriate shell script.
|
|
|
Logged
|
|
|
|
mjau
|
|
« Reply #5 on: March 28, 2010, 09:56:28 AM » |
|
|
|
|
Logged
|
|
|
|
Christian Knudsen
|
|
« Reply #6 on: March 28, 2010, 11:13:29 AM » |
|
I just tried pngcrush on a png made with GIMP. It only went from 435 kb to 430 kb, so not much of a difference. However, optimizations like these don't affect the size of the PNG in memory when for example stored like a texture in OpenGL, do they? So is it just to decrease download size?
|
|
|
Logged
|
|
|
|
lansing
|
|
« Reply #7 on: March 28, 2010, 01:01:23 PM » |
|
I just tried pngcrush on a png made with GIMP. It only went from 435 kb to 430 kb, so not much of a difference. However, optimizations like these don't affect the size of the PNG in memory when for example stored like a texture in OpenGL, do they? So is it just to decrease download size?
To load it as a texture in OpenGL, the PNG has to be decoded into RGB/RGBA values at which point the original compressed size of the PNG is irrelevant.
|
|
|
Logged
|
|
|
|
|
BorisTheBrave
|
|
« Reply #9 on: March 28, 2010, 01:48:41 PM » |
|
I used pngcrush once. I can confirm it allows bruteforce filter searches, and can configure the zlib compression. I'm pretty sure it works sensibly with alpha palette (it at least supports it). It's FOSS and works on Linux & Windows.
You are going to have to clarify "popular" program. As it stands, it's a profoundly stupid request - how am I meant to know what you consider popular.
|
|
|
Logged
|
|
|
|
|
Core Xii
|
|
« Reply #11 on: March 29, 2010, 01:41:34 AM » |
|
Yes, OptiPNG was the closest to my requirements I could find, but as you realized it still falls short. pngcrush does not work in-memory - It writes all its trial files on disk. Which is unacceptably inefficient. Any one program not good enough on its own is just not good enough. Therefore pngwrite is out of the question. PNGOUTWin is not free. if you can understand german [...]
Sadly, I can not. TweakPNG is not the type of program I'm looking for. It doesn't optimize image data at all, it can only remove and modify certain chunks. You are going to have to clarify "popular" program. As it stands, it's a profoundly stupid request - how am I meant to know what you consider popular.
As it happens, all the popular programs were just posted above. So there you have it. I'm sure my request would seem stupid to most people - And that's fine - I'm looking for the few who know exactly what I'm talking about.
|
|
|
Logged
|
|
|
|
Ina Vegt
Level 1
Girl Game Developer
|
|
« Reply #12 on: March 29, 2010, 02:40:18 AM » |
|
Why not write your own? Your requirements seem so specific to necessitate that move.
|
|
|
Logged
|
|
|
|
Core Xii
|
|
« Reply #13 on: March 29, 2010, 07:35:35 AM » |
|
More trouble than it's worth at the moment, but perhaps eventually.
|
|
|
Logged
|
|
|
|
mjau
|
|
« Reply #14 on: March 29, 2010, 08:42:05 AM » |
|
Any one program not good enough on its own is just not good enough. Therefore pngwrite is out of the question. You can easily chain things together using a script. pngrewrite usually isn't necessary with pngout though. PNGOUTWin is not free. I said pngout, not pngoutwin. pngout is free, and is available for Windows, Linux and Mac. As it happens, all the popular programs were just posted above. So there you have it. I'm sure my request would seem stupid to most people - And that's fine - I'm looking for the few who know exactly what I'm talking about. Yes, poor you. You could've saved us all from trying to help you by just listing what things you'd already tried in your first post.
|
|
|
Logged
|
|
|
|
Core Xii
|
|
« Reply #15 on: March 31, 2010, 01:59:04 AM » |
|
I said pngout, not pngoutwin. pngout is free, and is available for Windows, Linux and Mac.
It's not graphical though. I'm not going to write batch scripts or something just to do a simple job. Maybe if I were on Linux, but Windows just isn't that kind of an environment. Yes, poor you. You could've saved us all from trying to help you by just listing what things you'd already tried in your first post.
In retrospect, I probably should have.
|
|
|
Logged
|
|
|
|
increpare
Guest
|
|
« Reply #16 on: March 31, 2010, 03:59:16 AM » |
|
I said pngout, not pngoutwin. pngout is free, and is available for Windows, Linux and Mac.
It's not graphical though. I'm not going to write batch scripts or something just to do a simple job. Maybe if I were on Linux, but Windows just isn't that kind of an environment. I do command-line scripting all the time on windows, as do many windows programmers that I know (generally for me I do it via python, though).
|
|
|
Logged
|
|
|
|
David Pittman
|
|
« Reply #17 on: March 31, 2010, 08:18:54 AM » |
|
I'm not going to write batch scripts or something just to do a simple job.
But simple jobs are the perfect place for scripts! It's all about cutting the slow, error-prone, mouse-pushing middleman out of the process.
|
|
|
Logged
|
|
|
|
skyy
|
|
« Reply #18 on: March 31, 2010, 11:04:23 AM » |
|
But simple jobs are the perfect place for scripts!
High five
|
|
|
Logged
|
|
|
|
|