I think most people here are talking about applications in a computer.
For android which is what I use, is an app called Photo Resizer.
You can also go to settings on your camera, and change the quality which will decrease your size as well.
I imagine there are also aftermarket apps that can take good pictures with low file size, but I usually bulk rezise photos in microsoft picture image viewer, but I updated my work laptop to microsoft office 2016 and it is no longer there. Fast stone is also another good tool I use a lot for screenshots, screencasts, and resizing pics.