X-cart should do this by default. Its kind of difficult to setup but basically any product variant can have a detailed image. Not using your specific example (because I would get lost real quick

) you probably have something similar to the normal "size - color" product.
Anyway, lets say we have product SKU123 in 3 sizes (small, medium, large) and 2 colors (black, white)/ We set our product options as "product variants", creating a "size" option, and a "color" option.
X-cart will append a number to SKU123 to every possible combination (i.e. SKU1231, SKU1232, SKU1233, etc.), skipping any existing skus. We can change these to something more manageable, like SKU123SB (for small, black) as an example.
We can also "eliminate" any combination that we don't sell.
OK, now the good part. You can add a photo for every variant sku for this product, and when the customer selects the option the product image will change to whatever the customer has selected.
If you PM me I can send you a link to see how if functions.
I hope this helps.