1) Set width and height of your image to 0.
2) Add a padding of 100px.
3) Add your new image via a background image 
img {
  display: inline-block;
  background: url(http://lorempixel.com/200/200) no-repeat; /* <--- */
  width: 0; /* <--- */
  height: 0; /* <--- */
  padding: 100px; /* <--- */
}
.replace {
  display: inline-block;
  background: url(http://lorempixel.com/200/200) no-repeat;
  width: 0;
  height: 0;
  padding: 100px;
}
<h4>Image from placehold.it:</h4>
<img src="http://placehold.it/200x200"/>
<hr>
<h4>Same image in markup - but replaced via CSS</h4>
<img class="replace" src="http://placehold.it/200x200"/>
 
 
FIDDLE
How does this work?
Well, lets say we added padding to your original img element:
img {
    padding:100px;
    background: pink;
}
The result is your original img with 100px of pink background on each side

Now set width/height to 0:
img {
   padding:100px;
   background: pink;
   width:0;height:0;
}
You get a 200px X 200px pink area: (So now you've eliminated your original image)

Now change the pink background to your new background
background: url(http://lorempixel.com/200/200) no-repeat;
and you're done.