For a long time I struggled with images, trying to grapple with the problems associated with getting nice big images, but keeping file size small.
Then I installed Image Handler with takes care of all the technical elements associated with images.
Before I create a site, I spend a lot of time establishing proper protocols for images.
If the images are very large (both is file size and pixel dimensions) I use an image editor to get them all to the same ASPECT (Landscape or Portrait) and the same pixel size - usually 475px wide X 600px deep.
I also make sure that the images are no higher resolution than 120dpi (because even high-res monitors can't display higher than this...
So, I end up with 120dpi, 475X600px images all in the same aspect.
Then, I give them the SAME NAMES as the product code (model number).
I use ALPHA-NUMERIC characters - all lower case - to name my images (and by default my product codes)...
... and my images display (and zoom) perfectly.