ImageServer

From OuroDev

ImageServer is a command line option to the city of heroes client program that causes it to output image files from costume csv files. There are two ways to generate these files at present - use the MapServer CharInfo Mode or use the /costume_save command.

Usage

To save your costume using the command, be logged in on a level 9 user and enter the following to export your current costume.

/costume_save "absolute\path\to\file.csv"

The client takes two parameters for imageserver, in and out:

cityofheroes.exe -project coh -imageserver "absolute\path\to\in\dir" "absolute\path\to\out\dir"

You can also start imageserver in-game on *any* account (its level 0), using:

/imageserver "absolute\path\to\in\dir" "absolute\path\to\out\dir"

Once imageserver is started, it cannot be stopped until the client exits. It will continally monitor the in directory and parse any csv file that appears, so you can change costumes and save them and it will immediately parse them, or you can save them all first and it will parse the whole lot in one go when you start the imageserver.

Any csv file found in the in directory will be processed and saved as an image in the out directory.

There are two additional options:

-notga
-nojpg

The former supresses the output of TGA files in the output directory. The latter suppresses the output of JPG files ((Where? Are these in the out dir or the charinfo dir, need to check)). The CSV file itself can have parameters added to the top.

Parameters

Parameters are inserted at the start of the CSV file, and consist of PARAMS: followed by a comma seperated list of parameters in the form key=value. Some don't have a value and are just flags.

All Params

X= Width of output image in pixels
Y= Height of output image in pixels
BGTEXTURE= Background texture
BGCOLOR= Background colour, an decimal or a hexadecimal (0x??????) number
HEADSHOT Generate a headshot not a fully body image
DELETECSV Delete the source CSV after processing
OUTPUTNAME= Filename for output
CAPTION= ?? Caption?
COSTUMENAME= Use this costume instead of the contents of the CSV. The name is from the NPC .nd file.

CharInfo Params

PARAMS: X=200,Y=400
PARAMS: OUTPUTNAME=c:/charinfo/html/freedom/villain_costume1.jpg
PARAMS: BGTEXTURE=V_Portrait_bkgd_red.tga
PARAMS: BGCOLOR=16777215
PARAMS: DELETECSV

CharInfo Thumbnail Params

PARAMS: X=80,Y=80
PARAMS: OUTPUTNAME=c:/charinfo/html/freedom/villain_thumbnail.jpg
PARAMS: BGTEXTURE=V_Portrait_bkgd_red.tga
PARAMS: BGCOLOR=16777215
PARAMS: HEADSHOT
PARAMS: DELETECSV

CSV File Format

First, any PARAMS lines Then, each line as follows:

Index - starts at 0, add 1 each line
Geometry
Texture 1
Texture 2
Name
Colour 0
Colour 1
Body Type
  0: Male
  1: Female
  2: BasicMale
  3: BasicFemale
  4: Huge
  5: Enemy
  6: Villain
  7: Enemy2
  8: Enemy3
Skin Colour
Global Scale
AllBones Scale
Head Scale
Shoulder Scale
Chest Scale
Waist Scale
Hip Scale
Leg Scale
Arm Scale
HeadX Scale
HeadY Scale
HeadZ Scale
BrowX Scale
BrowY Scale
BrowZ Scale
CheekX Scale
CheekY Scale
CheekZ Scale
ChinX Scale
ChinY Scale
ChinZ Scale
CraniumX Scale
CraniumY Scale
CraniumZ Scale
JawX Scale
JawY Scale
JawZ Scale
NoseX Scale
NoseY Scale
NoseZ Scale
FX Name, or "none"
Colour 2, or 0
Colour 3, or 0
Region Name, or 0
Body Set, or 0

Sample Costume CSV

Sample costume CSV. It should in theory be possible to generate a .costume to .csv convertor.

PARAMS: X=200,Y=400
PARAMS: OUTPUTNAME=c:/charinfo/html/freedom/villain_costume1.jpg
PARAMS: BGTEXTURE=V_Portrait_bkgd_red.tga
PARAMS: BGCOLOR=16777215
PARAMS: DELETECSV
0,"tucked_in","Pants","!hips_v_pattern_thin_stripe_02","None",2039583,14935011,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,"lower_body","tuckedin"
1,"jackets_sleeves","Tights","none","None",2039583,14935011,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,"upper_body","Jackets"
2,"v_fem_head.geo/geo_head_v_asym_standard","!face_skin_v_fem_head_10","none","None",2039583,14935011,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,"Head","halfhelmets"
3,"smooth","skin_bare","none","None",2039583,14935011,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,"upper_body","Jackets"
4,"smooth","combat_01","!boot_v_thin_stripe_02","None",2039583,14935011,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,"lower_body","tuckedin"
5,"none","none","none","None",2039583,14935011,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,"upper_body","Jackets"
6,"halfhelm_round","halfhelm_round_01","helm_stripes_1","None",2039583,14935011,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,"Head","halfhelmets"
7,"none","none","none","None",0,0,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,0,0
8,"v_fem_eyes.geo/geo_eyes_mirror_glasses_03","!x_mirror_glasses","none","None",2039583,14935011,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,"Head","halfhelmets"
9,"none","none","none","None",2039583,14935011,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,"upper_body","Jackets"
10,"none","none","none","None",2039583,14935011,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,"upper_body","Jackets"
11,"none","none","none","None",0,0,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,0,0
12,"none","none","none","None",2039583,14935011,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"weapons/custom_pulserifle/fem_pulserifle_villainbase.fx",2039583,14935011,"Weapons","Weapons"
13,"none","none","none","None",2039583,14935011,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,"Head","halfhelmets"
14,"none","none","none","None",0,0,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,0,0
15,"none","none","none","None",0,0,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,0,0
16,"none","none","none","None",0,0,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,0,0
17,"none","none","none","None",0,0,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,0,0
18,"none","none","none","None",0,0,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,0,0
19,"none","none","none","None",0,0,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,0,0
20,"motorcycle","japan_01a","japan_01b","None",2039583,14935011,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,"upper_body","Jackets"
21,"motorcycle_long","japan_long_01a","japan_long_01b","None",2039583,14935011,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,"upper_body","Jackets"
22,"none","none","none","None",2039583,14935011,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,"Head","halfhelmets"
23,"none","none","none","None",2039583,14935011,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,"Head","halfhelmets"
24,"none","none","none","None",0,0,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,0,0
25,"none","none","none","None",0,0,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,0,0
26,"none","none","none","None",0,0,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,0,0
27,"none","none","none","None",2039583,14935011,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,"lower_body","tuckedin"
28,"none","none","none","None",0,0,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,0,0
29,"none","none","none","None",0,0,1,-6573313,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,"none",0,0,0,0