I’m doing the same thing (uploading a just taken photo to a server).
The SDK itself downscales the image to something below 2048x2048 pixels (1024x1024 on older devices) so that the image will fit within the maxTextureSize the sdk supports on the particular device. However, you’ve got no control over that (unless CoronaLabs adds something, at some future point).
To have the image smaller, the only solution I have found is to use dispay.save() to get a lower resolution image. To use it, you’ll need to scale your picture so that it fits onscreen, then use the display.save(), and THEN send it to your server.
A couple things to keep in mind though… Different devices have different “aspect ratios”, and the pictures they take are typically in that format (3:4, 2:3, etc)… If you use each devices full screen, your images may look squished or stretched when displayed on another device… This same issue occurs even if you send the full images… Consider:
one device has a screen 2 pixels wide and 3 tall, and a second device has one 3 wide and 4 tall… Taking an image from the first device and showing it fullscreen on the second will produce an image that is squished vertically when viewed on the 3:4 device.
Another issue is an apparent masking bug in corona… (hopefully to be fixed soon). You’ll see that you’ll need to create a mask to overcome the aspect issue above. However, the current SDK does not blank/zero out the group buffer when compositing the display.save, leaving a tiny white rectangle around your image.
http://docs.coronalabs.com/api/library/display/save.html
http://docs.coronalabs.com/api/library/graphics/newMask.html