Questions on ssd1306 i2c screens.

@CatDadJynx,

Your display is doing exactly what you asked it to. i.e. show a very low resolution mono image.

The GIMP software makes an attempt to re-create the grey as black and white dots. It also had to do some rescaling.
The net result is pretty horrible. Just look at it before creating the C array.

The u8g2 library can display XBM from Flash or SRAM but it can only do ordinary bitmaps from SRAM.
Adafruit_GFX style libraries can display ordinary bitmaps from SRAM or Flash.

You can choose whatever format you like e.g. XBM or regular
But it is only practical to store in Flash because SRAM is limited on a Uno.

Create your mono image in 128x64 resolution or whatever. View it on your PC before sending it to your Arduino sketch.

David.