MySQL is happy spitting out blobs all day long if provisioned correctly and in tandem with caching, even better.
James, you may want to consider that these images can be put on a filesystem other than the one hosting your IPS files and served out from a subdomain or similar. To do so, It's not very well documented or as apparent as it could be in the help guides. However, it sounds like your process could generate the preview image, put it on that separate filesystem, and then insert the path into the database instead of the blob itself (if that's your preferred method).
You can create a filesystem storage configuration, turn on "use custom url." Consider setting up a subdomain like preview-images.example.com, that lives on another server you maintain for serving out these images and is then cached by your CDN.
What I'd suggest instead, however, is that you transition this task to use the IPS API for Downloads instead. This way you only need to grant API access to your process, the files can be stored on your filesystem, and your script doesn't need access to the web server's filesystem to do so.
https://invisioncommunity.com/developers/rest-api?endpoint=downloads/files/POSTitem
Are screenshots not editable though via API? What nonsense is that?