The imagemagick package can convert full color images to dithered 1-bit per pixel images for use on the Arduboy screen. Here is an example of how to convert a file
$ convert Vitruve.jpg -crop 400x200+200+200 -resize 128x64 -type BiLevel ~/Pictures/vitruvian_128x64.png
This gives us an image that looks like this
From here, we can use an online tool, such as Team-A.R.G.'s Arduboy Image Converter to generate an array that can be pasted into a program. The array looks like this
const unsigned char PROGMEM vitruvian[] =
{
// width, height,
128, 64
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
If you have heard people talk about how computers are all 1's and 0's, this is a good example. The bulk of the array is in the form of hexadecimal 8-bit values, but if you are good at math you can convert 0xff to 11111111 in binary. That's a lot of ones, and if you look at the image, there is a lot of white space. A 1 in the array means that a dot on the display should be turned on, so this seems right.
To display the image, you can use the drawSelfMasked() function, like this
sprites.drawSelfMasked(0, 0, vitruvian, 0);