The other common approach here (for non-generative images) is to store the Sha3 hash of an image and then simply require that someone, somewhere has the actual data. You could also pass the image as a LOG message which is significantly cheaper (3 gas per byte, versus 20,000 gas per 32-bytes to store data) which means if you can read older chain blocks, you can ensure you have the underlying data.