A Relative URL assumes that the referenced resource is stored relative to the HTML file it's being used in.
eg. If your HTML file is stored in your c:\my-stories folder then the entrance.jpg image file referenced in your [img[entrance.jpg]] or <img src="entrance.jpg" /> examples also needs to be stored in that folder.
Unfortunately the HTML document created by the Test and Play modes of the Twine 2.x application only exists in the memory being used by the application, so there is no physical HTML file for referenced image file to be stored relate to.
You can use the Publish to File option to create a physical HTML file which you can save in a folder that is relative to the location your image is stored in, this would allow you to test the story as it will be used by the end-users.
note: Your last example is trying to use an Absolute (Path) URL, which you would need to changes to something like the following for it to work within the Twine 2.x application.
<img src="file://C:/Users/John/Documents/Twine/Stories/images/entrance.jpg">
warning: Obviously the above Absolute URL will not work on other people's machines, so you will need to either:
1. change it to a Relative URL before creating a release of your project for others to use.
2. implement some means for your project to automatically switch between Absolue & Relative URLs as needed.