Alright, first you have to get all images in a post, the actual content not the URL. Once you get the images, you can compress them using the ziparchive class.
This post expand on how to accomplish this with PHP:
https://stackoverflow.com/questions/13396414/download-images-and-zip-them-through-php/13396612
Howdy!
To add on to what was said above, I don’t think it would be completely doable without a plugin or some custom functionality being developed.
The first thing that comes to mind would be using the core function: https://developer.wordpress.org/reference/functions/get_post_gallery_images/
That will get all of the IDs in the gallery of the attached post but then you might be able to adapt the above php script to do create the zip file. The one thing to consider may also be processing that may be needed. That’s me thinking out loud in terms of performance – could be nothing.
Hopefully that helps out to some degree.
Thank you for the suggestions.
I also found a script that could be helpful called JSZip. It will take care of the zipping and downloading of the files to the user’s device.