Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411690 Posts in 69399 Topics- by 58453 Members - Latest Member: Arktitus

May 18, 2024, 01:15:40 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)PNG optimization
Pages: [1]
Print
Author Topic: PNG optimization  (Read 2884 times)
Core Xii
Level 10
*****


the resident dissident


View Profile WWW
« 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
Level 5
*****

Dream Mechanic


View Profile
« 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
Level 10
*****


View Profile WWW
« 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
Level 0
***



View Profile
« 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
Level 3
***



View Profile
« Reply #5 on: March 28, 2010, 09:56:28 AM »

pngrewrite + pngout
Logged
Christian Knudsen
Level 10
*****



View Profile WWW
« 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

Laserbrain Studios
Currently working on Hidden Asset (TIGSource DevLog)
lansing
Level 2
**


View Profile
« 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
Chromanoid
Level 10
*****



View Profile
« Reply #8 on: March 28, 2010, 01:28:48 PM »

if you can understand german you may want to look at this http://zfx.info/viewtopic.php?f=7&t=59#p6553 / http://zfx.info/download/file.php?id=407 (needs dll from ms vc2010, archipng makes the png bigger but optimizes it to compress it via i.e. 7-zip with PPMd, after this it will be very small. )
or here something else
http://entropymine.com/jason/tweakpng/
« Last Edit: March 28, 2010, 01:47:06 PM by Chromanoid » Logged
BorisTheBrave
Level 10
*****


View Profile WWW
« 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
gnat
Level 1
*



View Profile WWW
« Reply #10 on: March 28, 2010, 05:02:53 PM »

I use a batch file with PNGCrush. More info and download here: http://www.geenat.com/?p=233
Logged

LAN Party List - The definitive LAN party list. Also Game Jams, etc.
GitHub
Core Xii
Level 10
*****


the resident dissident


View Profile WWW
« 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


View Profile
« 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
Level 10
*****


the resident dissident


View Profile WWW
« Reply #13 on: March 29, 2010, 07:35:35 AM »

More trouble than it's worth at the moment, but perhaps eventually.
Logged
mjau
Level 3
***



View Profile
« 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
Level 10
*****


the resident dissident


View Profile WWW
« 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
Level 2
**


MAEK GAEM


View Profile WWW
« 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.

Crazy

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
Level 2
**


[ SkyWhy ]


View Profile
« Reply #18 on: March 31, 2010, 11:04:23 AM »

But simple jobs are the perfect place for scripts!

High five  Hand Thumbs Up Right
Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic