I'm pretty sure they're generated on the fly based on a bunch of parameters.
You'll note if you Inspect Element that the HTML for the tag includes some code :
- data-itemcode="BEH-PEN-01"
Probably the initial base image to use. In this case, Pendent 01
- data-angle="P"
Angle probably specifies which version of the image to generate. For example, there are 4 images below the main image.
- data-version="2"
Perhaps there was once a version 1 of their image generator tool?
- data-generatedname="18YG-18RG-I-D-D-CH_CBL_1-5_SS_18"
Actual data for generated item. You'll note this matches what you select in the dropdowns on the right, such as "18YG" = 18k Yellow-Gold, "18RG" = 18k RoseGold, "CH_CBL_1-5_SS_18" = 1.5mm Cable Chain Sterling Silver 18", etc.
- data-size="450"
Final image size to render
- data-slug="pear-citrine-18k-yellow-gold-pendant-with-diamond"
user-friendly title to use
If you take the actual image url, you can alter parameters to play around with different variations.
http://sd2.gemvara.net/image-generator/BEH-PEN-01/P/2/18YG-18RG-E-D-D-CH_CBL_1-5_SS_18/450/pear-emerald-18k-yellow-gold-pendant-with-diamond.jpg
For example, "450" can be changed to another size to alter image size. Or "YG" can be changed to "WG" (White Gold), "RG" (Rose Gold), "SS" (Sterling Silver), etc. Or you can choose "PEN-02" to view a different base image with the same colors. And the final bit, "pear-citrine-18k-yellow-gold-pendant-with-diamond", can be set to anything you want and nothing changes other than the title.
Most likely there is a stock image, probably black and white, with regions defined. The image generator applies a hue shift over the individual regions based on what is specified.
Points to support that :
If you compare some of the gem colors (Pink Sapphire/Yellow Sapphire for example or Blue Topaz/Green Tourmaline), especially with larger images, you can clearly see the image used is the exact same, only with a different color. This isn't how real individual images would be. I've also seen this kind of stuff before, such as this really poor example where skin tones make it apparent what is happening.
Example site does have some variation between stock gem images, most noticeably Ruby and Diamond. This makes me think it uses partial image substitution, because a complete image change would be a lot of maintenance for the number of items this site has.
Some images have poor regions defined, making the overall "photoshop" look more apparent. For example, this one has the large gem region poorly defined, and a dark color gem really shows that.
Best guess is that the site catches anything going to /image-generator/
in the url, and hands it off to an image generator process, which returns the final jpg image for display.
img
attribute to a difference image source on hover. This and this. Nothing fancy here. Inspect Element is your best friend