All The Arduboy Image Converters

I’ve noticed there’s quite a lot of arduboy image converters (image formats to const unsigned char PROGMEM arrays), so I thought I’d make a single post listing them all as a reference.

Offline

Graphical

Command Line

Online

If I’ve missed any, let me know and I’ll edit them in.

20 Likes

The title says Image Editors but it appears you mean Image Converters

You’re missing the Team A.R.G. ones:

https://teamarg.github.io/arduboy-image-converter/

https://teamarg.github.io/arduboy-tile-converter/

https://teamarg.github.io/arduboy-sprite-converter/

I missed Team Arg because they never fully announced their tools on the forums.

2 Likes

Hrm, didn’t come up with any of the searches I did.
Maybe because it only uses the word ‘convert’ and not ‘converter’. Next time I’ll regex (assuming the search system supports regexes).

I even searched ‘team arg tools’ and didn’t get that page.

This topic deserves to be pinned to the category, doesn’t it?

2 Likes

This is exactly what i was looking for, thanks!

Is the list being updated?

Sort of.

I’ll happily edit in any new converters if someone asks or if someone announces one,
but I don’t think anyone’s actually made any new image converters since the list was made.

I think you missed my command line tool which can turn a whole folder of images into a C header file (for Arduboy) in batch:

1 Like

Most likely it didn’t crop up during my initial search because there was never a thread announcing its existance like there has been for most of the other converters.

I’ve added it now anyway.

This is the best in my opinion :stuck_out_tongue:

1 Like

Guess I just like to fly under the radar like that, lol.

1 Like

Hey so I have been trying to edit bitmaps this dogfood exercise has taught me we need to host an official image converter on the website.

What are people actually using out there is good? Can someone point at something that I could deploy on the website?

I’m gonna be looking around too.

If it will be one converter that handles all the formats, it needs to do:

  • The original library drawBitmap() format.
  • Possibly the original library drawSlowXYBitmap() format, though there’s really no good reason to use this.
  • The Sprites formats, from a single image, a sprite sheet and possibly a tile sheet. Both the drawPlusMask() format, and the one used by the others, is required.
  • The compressed format used by the library drawCompressed() function.
  • Handling the Ardbitmap library format(s) would be a bonus.

Ideally it should be able to produce masks for all these formats by decoding the transparent pixels (alpha channel) in the provided images.

You also need to decide what input image formats you handle; PNG, GIF, BMP, JPEG …

Those are cool features, do any of the open source options currently available exist that can be deployed onto the site?

I don’t think we need all that to be honest, those would be nice to have.

Right now I’m looking at the team arg tool just tweaked to remove the height and width values from the array.

We could sit here and make a list but I can guarantee no developer is just going to pick up the charge and do it exactly the way we want, this post proves every is just going to do it their own way. And I’m not smart enough to do it.

If someone wants to do it I can compensate them for sure.

I’d been thinking of taking the TeamARG sprite converter, updating the HTML wrapper, and making it more gracefully handle bitmaps with a height not equal to a multiple of 8 by automatically expanding them… maybe as a project for Hacktoberfest. I got hit with the x8 bug several times recently, both in their page and the cabi converted included with the Arduboy2 library.

I think that to do that with the image converter, you just have to find the code in index.htm:

// Generate the sprite string
var spriteString = "const unsigned char PROGMEM "+imageData.name.split(/_|\./)[0]+"[] =\n"+
"{\n// width, height,\n"+droppedImage.naturalWidth+", "+droppedImage.naturalHeight+",\n";

and change it to:

// Generate the sprite string
var spriteString = "const unsigned char PROGMEM "+imageData.name.split(/_|\./)[0]+"[] =\n{\n";

(I haven’t included the indenting in the above)

I think what I will do, is I will take the team argimage converter, host it up on a github, link to it from the main page, and quick links so you can get to it easy, and then also have a note on the page “if you would like to improve the functions of this converter please send pull requests”

1 Like

I currently are hosting their sprite tools here > Team ARG Tools hosted by Filmote

As has been noted and linked to in the original post in this topic.