I'm not sure I was clear enough.
We'll assume now that it's just a single texture with a 16x16 image on it (like my first image above).
Using it, you set the texture co-ordinates for the four corners to:
(0, 0), (16, 0), (16, 16), (0, 16)
Then, change the texture to the expanded version (my second image above) which is, of course, 18x18.
Then you set the texture co-ordinates for the four corners to:
(1, 1), (17, 0), (17, 17), (0, 17)
If you're using
sf::Sprites, you would just do:
sprite.setTextureRect(sf::IntRect(sf::Vector2f(1.f, 1.f), sf::Vector2f(16.f, 16.f))); // the last vector is the size, it's not a co-ordinate
EDIT: I don't know how far smoothing takes into account. It may take more pixels into account if the image drawn is very small. Therefore, you would have to add even more padding if you used this "solution".