Alright, I kept my word!

as I was needing some trophy icons for Apollo, I finally ported
@littlebalup Python code to C
now we have a C parser that should work either on the PS3 and the Vita, and generates valid .png files that can be easily loaded in any homebrew. (probably I need to add a function to return a buffer instead of writing the .png to disk

)
btw, I tried to keep dependencies to a minimum, so right now only a zlib decompressor is required.
I need to clean up the code and then I'll upload the source to GitHub. I should also convert it to a library so it can be included in homebrew projects.
As an example, I'm attaching a .zip with all the output PNG files generated by the C parser, from the original "imagefont.PS3_cust_v001.bin" file from littlebalup.
Code:
IMAGE_INFO; Info from index entry:
IMAGE_INFO; entry number in the index : 332
IMAGE_INFO; unicode code point : U+F6DF
IMAGE_INFO; UTF-8 hex value (calculated) : EF 9B 9F
IMAGE_INFO; image size : 27 x 23
IMAGE_INFO; palette size : 1042
INDEX_DATA; unknown_data_1 0xFF7F
IMAGE_INFO; Info from palette header:
IMAGE_INFO; color count : 256
IMAGE_INFO; color channel : 4 bytes (32 bits)
IMAGE_INFO; frame count : 1
IMAGE_INFO; total animation time : 0.000 second(s)
IMAGE_INFO; frames per second (calculated) : 1.000
Processing U+F6DF frame: 001
FRAME_001; Below value is the frame duration in hundredths of a second. Maximum is 65535 (0xFFFF).
; It has no effect if only one frame.
FRAME_001; frame_duration 60
FRAME_001; * Below value should be always 0x01. It has unknown effect though.
FRAME_001; unknown_data_2 0x01
FRAME_001; * Below value is assumed to be the color number, from the image color palette, representing the transparent color
; It should be 0 to maximum 255.
FRAME_001; alpha_color 0
FRAME_001; * Below value should be always 0x0000 (padding?). It has unknown effect though.
FRAME_001; unknown_data_3 0x0000