How To Make PNG

This page explains how to create pictures with all emulators that support rerecording, in PNG, Portable Network Graphics, format as small file as possible.

Snapshots when using Windows

Famtasia

Go to FILE menu, then NEW ->Save BMP. Now choose a directory and a name.

VirtuaNES

Press Ctrl+P and the picture(s), in BMP format, should be created in a directory named snapshot. That one is in VirtuaNES default path.

FCE Ultra

Press F12 and the picture(s), in PNG format, should be created in a directory named snaps. That one is in FCE Ultra default path.

Snes9x

Simply press F12 during gameplay and the picture(s), in PNG format, should be in your rom(s) directory or Snes9x default path.

Gens

Press Shift+Backspace and the picture(s), in BMP format, should be in Gens default path.

FB Alpha

Simply press F12 during gameplay and the picture(s), in PNG format, should be created in a directory named screenshots. That one is in FB Alpha default path.

Snapshots when using Linux

In Linux, when you install Imagemagick, you can use import to take screenshots of any window. Example:
  import tmp.png
Then click the window to take screenshot from, and it beeps twice when the file is ready. You can also select a region from screen by pressing the button somewhere and dragging the cursor to mark the corners of the region.

If you use KDE, there is a program which comes with most KDE installs called KSnapshot. It can take images from any window or area, take images on a timer, and remove window decorations automatically. Simply open it, and have it take a snapshot of the active window with the remove decorations box checked.

If your snapshots contains menubars and other irrelevant things, use an image manipulation program such as The GIMP to remove them.

Also ensure that your image is 8-bit, because avdpng can only handle 8-bit images. You can do the conversion with Imagemagick with a command line such as this:

  convert tmp.png -colors 256 -depth 8 +dither tmp2.png
or you can use an image manipulation program to do it.

Ps: The programs mentioned in this chapter can be used in Windows too.

Minimizing the file size

Firstly, pictures in BMP format should be converted into PNG format. You can use bmp2png downloadable at: http://hp.vector.co.jp/authors/VA010446/b2p-home/index.html.
Or, you can use an image manipulation program such as The GIMP.

Now, you need AdvanceCOMP. You can download it at: http://advancemame.sourceforge.net/comp-download.html AdvanceCOMP consists of 4 or more utilities. The one that recompresses PNG files is called AdvPNG. For more information on how to use it, read the documentation included with it.

Example of command line:

  advpng.exe -z -4 *.png
After this, all supported PNG images in the current directory are optimized.

There exists also another program, pngcrush, to minimize png files. While in most cases advpng makes a better job than pngcrush, there are certain few cases where pngcrush actually produces smaller files. If maximum possible compression is desired, it may be a good idea to try both.

There exists also a program called PNGOUT. I tried it and it seems to outperform AdvPNG in almost all cases. I'll use it from now on. Unfortunately though, it's not free. It is only free as in price, which is nice as long as you don't mind being limited to the options given to you. -Bisqwit

Yet another program that can be used is optipng, which is similar to pngcrush.

DeflOpt is a program which should be run last on PNGs, and it can typically reduce the filesize of images produced by pngcrush and other PNG optimizers by 3-3,000 bytes.

There exists a tutorial about PNGOUT for Windows users. Note: Do not drag and drop the image file onto the pngout executable, because it uses RGB compression, when we want palette compression. Do this as follows:

  1. In the same folder as pngout.exe, write a .bat file with the following text: start /wait pngout.exe /c3 zz.png (all on one line).
  2. Name your .png file zz.png and place it in the same folder as pngout.exe.
  3. Run the .bat file.
zz.png should be replaced by the compressed file.

Example of PNGOUT command line in Linux:

  for s in *.png;do ./pngout* -c3 -b0 -v "$s" tmp.png && mv -f tmp.png "$s";done
This handles all PNG files in the current directory. To handle a single file, do ./pngout* -c3 -b0 -v file.png. This creates file_.png.

Note that PNGOUT can read BMP files directly. You don't need to convert them first. But the input should be made 8-bit for best compression, as shown before.

Note that in some cases PNGOUT produces PNG files that don't work on all platforms (due to broken zlib implementations on those platforms).


Get Firefox!HowToMakePNG last edited by ccfreak2k on 2008-06-01 03:03:03
Page info and history | Latest diff | List referrers