Gamedev:Buildpics

From Spring

The buildpic is the small picture of a unit which appears in the build menu of its constructor. Commonly it is 96x96 pixels in size, and it must always be located in the Unitpics/ directory.

Spring supports multiple image formats for buildpics. These formats are PCX, JPG, BMP, DDS and PNG. By default, Spring will try to load unitname.dds, where unitname is the short name of your unit, if it isn't found it tries to load the next image format depending on its priority (see below). To override this and use a different (DevIL supported) image format, use the buildPic UnitDef tag.

Here's a detailed list of the formats supported:

Priority File Extension Color Depth Description
1 DDS 24-bit (16.7 million colors)
Slightly Lossy (compression)
Nvidia's DirectX-enabled .dds format. This is how the maps in Spring are stored. It offers compression, but it can be lossy. It is also difficult to work with. Other formats are still recommended.
2 PNG 24-bit (16.7 million colors)
Non-Lossy
New non-lossy, but still small in filesize, standard and with support for alpha channels. It is now recommended for use in Spring.
3 PCX 8-bit (256 colors)
Lossy (palette)
A PCX file. You're not limited to the Total Annihilation palette, but only 256 colors pcx are supported. Quickest to use if you're converting TA units since it's what TA uses but not recommended for use in Spring.
4 BMP 24-bit (16.7 million colors)
Non-Lossy
A standard Windows bitmap file. Recommended because of the high color depth and no loss due to compression or palette. However, BMP files are notorious for having large filesizes.
none JPG 24-bit (16.7 million colors)
Lossy (compression)
A standard JPEG file. Excessive compression is not recommended since it will reduce quality, but much smaller than BMP

Although JPG will lose some quality compared to BMP its file size is drastically smaller even on the lowest compression settings, this will drastically reduce the size of your mod especially if it has a large number of units. Also it has been noted that since spring loads things on the fly large buildpic files can create lag when you first select a factory or construction unit.