As you know already, to show an image you load it and then draw it. To show a different image, just don't draw the first one anymore and draw the second one instead. Pseudo-code:
sf::Image first, second;
first.LoadFromFile();
second.LoadFromFile();
sf::Sprite firstSprite, secondSprite;
firstSprite.SetImage(first);
secondSprite.SetImage(second);
if (firstNeedsDrawing)
{
window.Draw(firstSprite);
}
else if (secondNeedsDrawing)
{
window.Draw(secondSprite);
}
If you want to fade them try changing the color. sf::Color has 4 values, the last of which controls the transparency. 255 means no transparency, 0 means complete. So you could just set the fourth argument as a variable and decrease it to make the image more transparent.
while(firstNeedsDraw){
firstSprite.SetColor(200, 100, 100, alpha);
window.Draw(first);
alpha -= 10; //change this to change how quickly it fades.
}
sf::Sprite.SetScale to scale the sprite.