You will need to upload 2 images per stage (green / gray). Upload all images in a zip static resource. You can have a hidden formula field in that object (text) per stage. Text will say the name of the image
Lastly, you have your visualforce code: <apex:image url="{!URLFOR($Resource.TestZip, '{!formulaFieldWithTheImageName}')}" width="50" height="50" />
You will need to upload 2 images per stage (green / gray). Upload all images in a zip static resource.
You can have a hidden formula field in that object (text) per stage. Text will say the name of the image
Lastly, you have your visualforce code:
<apex:image url="{!URLFOR($Resource.TestZip, '{!formulaFieldWithTheImageName}')}" width="50" height="50" />