Update:
Version 2.2.1 available hereZacam was bugging me for new features, so here it is.

Interface templates (named Contemplates for marketing purposes

). New features are in bold.
http://www.mediafire.com/?dntywziomn2Features:- Output can be converted to a variety of image formats, including PNG (support is in trunk at the time of this post)
- Support for every interface screen except mainhalls
- Tested with a mod currently in progress *cough*
- Faster execution compared to batch script versions (1.x.x)
- Windows (exe included)/Linux/Cygwin support (Mac needs testing) - non-windows users need to install GraphicsMagick and compile
- Windows exe now supports JPEG and PNG input/output (libpng 1.2.42, zlib 1.2.3, jpeg-8 (release 8 of 10-Jan-2010)) - I didn't bother adding TIFF, would anyone use it?
- Makefile included for compiling in Linux/Cygwin/MinGW
- Project files/makefile for Eclipse/MSYS/MinGW
- Simplified and commented configuration file for settings
- Image (eg. background) input in various formats for non-windows compiles (eg. JPEG if you have JPEG libs when you install GraphicsMagick)
- User guide and source code documentation generated by Doxygen
- Upgraded Doxygen (1.6.2), html docs now have javascript search engine
- Transparency control of interface boxes
- Material layer - multiplies with interface boxes to produce effects
- Separate logo layer (includes retail logos)
- Independent colour control for interface boxes
- Independent colour control for button highlights (3 different colours - general, accept, cancel buttons)
- Support for quick production of custom mission load screens
- EFF support for load bar animation (trunk builds at the time of this post)
- nvDXT included for generating DDS images
Sample configuration file:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; The lines below control the compositing of screens upon backgrounds. ;
; ;
; Change screen_base.tga to whatever background image you want ;
; for the particular screen ;
; ;
; Material may be changed to any material image, or NULL ;
; ;
; Images which exceed 1024x768 will be cropped ;
; ;
; NOTE: lines starting with a semicolon are considered comments and ;
; not processed ;
; ;
; The following files are treated by the sample mode: ;
; 2_DebriefAward.tga ;
; 2_Barracks.tga ;
; 2_PXOChat.tga ;
; 2_WeaponLoadoutMultib.tga ;
; ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; COLOUR SETTINGS - EDIT, BUT DO NOT MOVE/REMOVE
; SCREENS
; HUE SATURATION VALUE
; degrees (0-360) 0-200 0-200
240 100 100
;
; BOXES
; HUE SATURATION VALUE
; degrees (0-360) 0-200 0-200
120 100 100
;
; BUTTONS (GENERAL)
; HUE SATURATION VALUE
; degrees (0-360) 0-200 0-200
40 100 100
; BUTTONS (ACCEPT)
; HUE SATURATION VALUE
; degrees (0-360) 0-200 0-200
120 50 100
;
; BUTTONS (CANCEL)
; HUE SATURATION VALUE
; degrees (0-360) 0-200 0-200
0 50 100
;
; TRANSPARENCY
; 0.0-1.0
0.75
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; BUTTONS - DO NOT EDIT (EXCEPT FOR CUSTOM INTERFACES) ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; BUTTON SCREEN GENERAL ACCEPT CANCEL OUTPUT
BUTTON NULL ./buttons/2_BAB_130001.tga NULL ./buttons_cancel/2_BAB_130001.tga ./output/2_BAB_130001.tga
BUTTON NULL ./buttons/2_BAB_130002.tga NULL ./buttons_cancel/2_BAB_130002.tga ./output/2_BAB_130002.tga
BUTTON NULL ./buttons/2_BAB_160001.tga NULL ./buttons_cancel/2_BAB_160001.tga ./output/2_BAB_160001.tga
BUTTON NULL ./buttons/2_BAB_160002.tga NULL ./buttons_cancel/2_BAB_160002.tga ./output/2_BAB_160002.tga
BUTTON NULL ./buttons/2_CPB_010001.tga NULL ./buttons_cancel/2_CPB_010001.tga ./output/2_CPB_010001.tga
BUTTON NULL ./buttons/2_CPB_010002.tga NULL ./buttons_cancel/2_CPB_010002.tga ./output/2_CPB_010002.tga
BUTTON ./buttons_special/2_BRB_150000.tga NULL NULL ./buttons_cancel/2_BRB_150001.tga ./output/2_BRB_150001.tga
BUTTON ./buttons_special/2_BRB_150000.tga NULL NULL ./buttons_cancel/2_BRB_150002.tga ./output/2_BRB_150002.tga
BUTTON ./buttons_special/2_Slider0000.tga NULL NULL NULL ./output/2_Slider0001.tga
BUTTON ./buttons_special/2_Slider0000.tga NULL NULL NULL ./output/2_Slider0002.tga
BUTTON ./buttons_special/2_MS_020000.tga NULL NULL ./buttons_cancel/2_MS_020001.tga ./output/2_MS_020001.tga
BUTTON ./buttons_special/2_MS_020000.tga NULL NULL ./buttons_cancel/2_MS_020002.tga ./output/2_MS_020002.tga
BUTTON ./buttons_special/2_MS_030000.tga NULL NULL ./buttons_cancel/2_MS_030001.tga ./output/2_MS_030001.tga
BUTTON ./buttons_special/2_MS_030000.tga NULL NULL ./buttons_cancel/2_MS_030002.tga ./output/2_MS_030002.tga
BUTTON ./buttons_special/2_MS_040000.tga NULL ./buttons_accept/2_MS_040001.tga NULL ./output/2_MS_040001.tga
BUTTON ./buttons_special/2_MS_040000.tga NULL ./buttons_accept/2_MS_040002.tga NULL ./output/2_MS_040002.tga
BUTTON ./buttons_special/2_TSB_340000.tga NULL NULL ./buttons_cancel/2_TSB_340001.tga ./output/2_TSB_340001.tga
BUTTON ./buttons_special/2_TSB_340000.tga NULL NULL ./buttons_cancel/2_TSB_340002.tga ./output/2_TSB_340002.tga
BUTTON ./loading/2_Loading0000.tga NULL NULL NULL ./output/2_Loading_0000.tga
BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0001.tga NULL NULL ./output/2_Loading_0001.tga
BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0002.tga NULL NULL ./output/2_Loading_0002.tga
BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0003.tga NULL NULL ./output/2_Loading_0003.tga
BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0004.tga NULL NULL ./output/2_Loading_0004.tga
BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0005.tga NULL NULL ./output/2_Loading_0005.tga
BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0006.tga NULL NULL ./output/2_Loading_0006.tga
BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0007.tga NULL NULL ./output/2_Loading_0007.tga
BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0008.tga NULL NULL ./output/2_Loading_0008.tga
BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0009.tga NULL NULL ./output/2_Loading_0009.tga
BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0010.tga NULL NULL ./output/2_Loading_0010.tga
BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0011.tga NULL NULL ./output/2_Loading_0011.tga
BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0012.tga NULL NULL ./output/2_Loading_0012.tga
BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0013.tga NULL NULL ./output/2_Loading_0013.tga
BUTTON ./loading/2_Loading0000.tga NULL NULL NULL ./output/2_Loading_0000.tga
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Uncomment the lines below to make pcx for loading bar ANI ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; BUTTON ./loading/2_Loading0000.tga NULL NULL NULL ./load_bar/2_Loading0000.tga
; BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0001.tga NULL NULL ./load_bar/2_Loading0001.tga
; BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0002.tga NULL NULL ./load_bar/2_Loading0002.tga
; BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0003.tga NULL NULL ./load_bar/2_Loading0003.tga
; BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0004.tga NULL NULL ./load_bar/2_Loading0004.tga
; BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0005.tga NULL NULL ./load_bar/2_Loading0005.tga
; BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0006.tga NULL NULL ./load_bar/2_Loading0006.tga
; BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0007.tga NULL NULL ./load_bar/2_Loading0007.tga
; BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0008.tga NULL NULL ./load_bar/2_Loading0008.tga
; BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0009.tga NULL NULL ./load_bar/2_Loading0009.tga
; BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0010.tga NULL NULL ./load_bar/2_Loading0010.tga
; BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0011.tga NULL NULL ./load_bar/2_Loading0011.tga
; BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0012.tga NULL NULL ./load_bar/2_Loading0012.tga
; BUTTON ./loading/2_Loading0000.tga ./loading/2_Loading0013.tga NULL NULL ./load_bar/2_Loading0013.tga
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 2_TSB_340000.tga is not a real interface file and ;
; may be removed from the output ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BUTTON ./buttons_special/2_TSB_340000.tga NULL NULL ./buttons_cancel/2_TSB_340002.tga ./output/2_TSB_340002.tga
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; POPUP WINDOWS - DO NOT USE BACKGROUND OR LOGO ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; NAME LOGO BOX(Y/N) TRANSPARENCY(Y/N) MATERIAL BACKGROUND
2_PleaseWait.tga NULL Y Y lines.tga NULL
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 2_DebriefAward.tga is used in the sample setting ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2_DebriefAward.tga NULL Y Y spiro.tga NULL
2_InfoBox.tga NULL Y Y lines.tga NULL
2_PopDeath.tga NULL Y Y lines.tga NULL
2_BriefMulti.tga NULL Y Y spiro.tga NULL
2_briefpop.tga NULL Y Y spiro.tga NULL
2_ChatBox.tga NULL Y Y lines.tga NULL
2_Pop2.tga NULL Y N lines.tga NULL
2_PXOPop.tga NULL Y Y lines.tga NULL
2_Pop3.tga NULL Y N lines.tga NULL
2_BriefWin.tga NULL Y Y lines.tga NULL
2_ChatBoxBig.tga NULL Y Y lines.tga NULL
2_MPPause.tga NULL Y Y lines.tga NULL
2_Password.tga NULL Y Y lines.tga NULL
2_PilotInfo.tga NULL Y Y lines.tga NULL
2_PilotInfo2.tga NULL Y Y lines.tga NULL
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; SCREENS ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; NAME LOGO BOX(Y/N) TRANSPARENCY(Y/N) MATERIAL BACKGROUND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 2_Barracks.tga is used in the sample setting ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2_Barracks.tga 2_Barracks.tga Y Y spiro.tga screen_base.tga
2_Brief.tga NULL N N NULL screen_base.tga
2_BriefMulti.tga NULL N N NULL screen_base2.tga
2_Campaign.tga 2_Campaign.tga Y Y lines.tga screen_base.tga
2_ChoosePilot.tga 2_ChoosePilot.tga Y Y lines.tga screen_base.tga
2_CommandBrief.tga 2_CommandBrief.tga Y Y spiro.tga screen_base.tga
2_CommandBriefb.tga 2_CommandBriefb.tga Y Y spiro.tga screen_base.tga
2_ControlConfig.tga NULL Y Y lines.tga screen_base.tga
2_Credits.tga 2_Credits.tga Y Y lines.tga screen_base.tga
2_DebriefMulti.tga NULL Y Y spiro.tga screen_base2.tga
2_DebriefSingle.tga NULL Y Y spiro.tga screen_base.tga
2_F1.tga 2_F1.tga Y Y lines.tga screen_base.tga
2_HotKeys.tga 2_HotKeys.tga Y Y lines.tga screen_base.tga
2_HUDConfig.tga NULL Y Y lines.tga screen_base.tga
2_KillMatrix.tga 2_KillMatrix.tga Y Y lines.tga screen_base.tga
2_LoadingBG.tga 2_LoadingBG.tga Y Y lines.tga screen_base.tga
2_LoadMission.tga 2_LoadMission.tga Y Y lines.tga screen_base.tga
2_LoopBrief.tga 2_LoopBrief.tga Y Y lines.tga screen_base.tga
2_MedalsDisplayEmpty.tga 2_MedalsDisplayEmpty.tga Y Y lines.tga screen_base.tga
2_MissionLog.tga 2_MissionLog.tga Y Y lines.tga screen_base.tga
2_MultiCreate.tga 2_MultiCreate.tga Y Y lines.tga screen_base2.tga
2_MultiHost.tga 2_MultiHost.tga Y Y lines.tga screen_base2.tga
2_MultiInGame.tga 2_MultiInGame.tga Y Y lines.tga screen_base2.tga
2_MultiJoin.tga NULL Y Y lines.tga screen_base2.tga
2_MultiJoinWait.tga 2_MultiJoinWait.tga Y Y lines.tga screen_base2.tga
2_MultiStartGame.tga 2_MultiStartGame.tga Y Y lines.tga screen_base2.tga
2_MultiSynch.tga 2_MultiSynch.tga Y Y lines.tga screen_base2.tga
2_OptionsDetail.tga 2_OptionsDetail.tga Y Y lines.tga screen_base.tga
2_OptionsMain.tga 2_OptionsMain.tga Y Y lines.tga screen_base.tga
2_OptionsMultiGen.tga 2_OptionsMultiGen.tga Y Y lines.tga screen_base.tga
2_OptionsMultiVox.tga 2_OptionsMultiVox.tga Y Y lines.tga screen_base.tga
2_PXHelp.tga 2_PXHelp.tga Y Y lines.tga screen_base.tga
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 2_PXOChat.tga is used in the sample setting ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2_PXOChat.tga 2_PXOChat.tga Y Y lines.tga screen_base2.tga
2_RedAlert.tga 2_RedAlert.tga Y Y spiro.tga screen_base.tga
2_ShipSelect.tga NULL Y Y lines.tga screen_base.tga
2_TeamSelect.tga 2_TeamSelect.tga Y Y spiro.tga screen_base.tga
2_TechData.tga 2_TechData.tga Y Y spiro.tga screen_base.tga
2_TechShipData.tga 2_TechShipData.tga Y Y spiro.tga screen_base.tga
2_ViewFootage.tga 2_ViewFootage.tga Y Y lines.tga screen_base.tga
2_WeaponLoadout.tga NULL Y Y lines.tga screen_base.tga
2_WeaponLoadoutb.tga NULL Y Y lines.tga screen_base.tga
2_WeaponLoadoutMulti.tga NULL Y Y lines.tga screen_base2.tga
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 2_WeaponLoadoutMultib.tga is used in the sample setting ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2_WeaponLoadoutMultib.tga NULL Y Y lines.tga screen_base2.tga
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; CUSTOM MISSION LOAD SCREENS ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; LOADSCREEN NAME BACKGROUND
LOADSCREEN LoadingBG_A.tga screen_base.tga
LOADSCREEN LoadingBG_B.tga screen_base.tga
LOADSCREEN LoadingBG_C.tga screen_base.tga
LOADSCREEN LoadingBG_D.tga screen_base2.tga
LOADSCREEN LoadingBG_E.tga screen_base2.tga
Please report any issues, especially errors in the resulting output in-game.
Eyecandy:Images from me and other people go here.
Woolie Wool:

The_E:

EDIT: Updated with eyecandy provided by The_E
EDIT: Eyecandy now has attribution