Unlimited size screenshots
Currently you are limited to fairly small areas. At 100% zoom the biggest area you can screenshot is 128x128 if your GPU can handle 4096x4096 textures. That is not big enough. Would be nice if it could take screenshots of any area. My belt balancer is 512x1700 tiles as an example. And if you want to take a screenshot of anything large, or just a small base then you quickly hit the limits. I did a complete rewrite of the control.lua to split images into several when dimensions are above 64x64 and managed to take 1.76 GB of footage of my belt balancer at 100%. Next is to write some code external to Factorio that can put the images back together.
control.lua by Qon - GPLv3
Less than 100% zoom
100% zoom means several GB of data for big things, and a lot of render time. It's a bit overkill if you want to share your creations with others. To upload the pictures they have to be converted to JPG and downscaled anyways. So why not capture at some reasonable quality? When taking a big screenshot (default to 100% if the image is small enough) you could have a popup that asks the user if they want 100%, 50%, 33% (if possible without stitching becoming noticable) or 25%. I haven't implemented this yet, might do it later if you don't.