I have a 16MB image that I'm encrypting and authenticating using AES-GCM. I obtain a 16MB encrypted image and a MAC. From what I could tell, this should provide me both confidentiality, authenticity, and integrity. I might be wrong on this.
This is correct; AES-GCM is designed to offer confidentiality, authenticity, and integrity.
You need to define who is supposed to be able to both verify the authenticity/integrity of your image, and who is supposed to be able to create authentic images.
In the case that you are the sole party that will be creating and accessing the image(s), then using ECDSA (or any signature algorithm) does not offer you any advantages. It will increase implementation complexity, and require more resources for no real benefit.
- This situation applies if you are storing the image for personal use.
In the case that you are sharing that image with 1 other party, and both parties are allowed to create authentic ciphertexts, then AES-GCM is still sufficient by itself.
- An example of this type of situation is secure instant messaging*.
If you want the world at large to be able to verify that a given ciphertext was created by yourself, without giving them the ability to create authentic ciphertexts themselves, then you would need to use ECDSA. Considering that the information is also encrypted, this seems like a relatively uncommon use case.
- An example of this situation might be that you are forming some kind of cryptographic commitment to the image, which will only be revealed at a later date.
*Note: To set up a secured communications channel would likely involve the use of digital signatures; This appears to be beyond the scope of your question