Join us on Discord!
You can help CodeWalrus stay online by donating here.


Started by MateoConLechuga, March 23, 2016, 07:12:00 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.


ConvPNG Link: Download

ConvPNG has just gotten a massive update, which will be extremely useful for C and ASM programmers alike. It can now take groups of images, determine the best palette for each group, and then convert each image using the palette. It also allows reserving a certain color for transparency, so you can have transparent sprites. Rather than being just a command-line tool, it now is more of a hybrid and uses 'convpng.ini' in the images directory in order to easily be able to group and convert images. A sample one with 2 palettes (or groups) may look like this:

#GroupC            : gfx_group_1
#Compression       : none                 (Compression type: none, rle, lz77)
#TranspColor       : 255,255,255,255      (Transparent color: r,g,b,a - a will most always be 255)
#Sprites           :                      (List of sprites for this group to convert)

#GroupC            : gfx_group_2
#Compression       : lz77                 (Compression type: none, rle, lz77)
#Sprites           :                      (List of sprites for this group to convert)

It also supports rle and lz77 compression of images, in order to help reduce size. Huffman was considered, but doesn't really perform well for palette-driven images. Color conversion is also a lot closer thanks to help from Runer. Overall, I hope that you all will find this quite useful :)

Let me know if you need any help working with it; or if you have and suggestions/comments. Enjoy! :D

For the technically inclined, it uses a combination of mediancut and K-means in order to choose the best palette for the groups of images.


Looks very nice Mateo.

The compression is a nice touch. I had experimented with lz77, huffman and pucrunch in the early days of the CSE.

Will you be providing decompression routines for users as well (if not so already)?


This has been very useful for converting Minecraft assets into asm code :)

Dream of Omnimaga

That is nice Mateo. I was always wondering how one could easily generate a decent palette for use in 8 bits mode for his CE graphics. Glad that they're compressed as well
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Powered by EzPortal