You open the JPG, PNG, BMP in Irfanview or other program.
Scale to the pixel dimensions that you like. e.g. 320x240
Save as a JPG with the desired "optimisation" e.g. 95%
95% will be virtually unnoticeable. 70% will be fairly severe but give you a tiny file.
Then simply use Bodmer's utility to read the resultant binary .JPG file into a C array to store in PROGMEM.
Experiment with the compression values. It is surprising how you can fit most JPEGs into < 32kB
Note that ARM or ESP don't care what size the C array is. But an AVR like MEGA2560 requires an array to be < 32kB
Oh, if your target is ESP32 or ESP8266, it is much easier to just store your compressed JPG files in SPIFFS
David.