Converting an image to Base64 turns it into a huge string of text that represents the image. You can then embed that "text" directly in HTML or CSS.
Is This a Good Idea?
Pros: one fewer HTTP request, simple deployment. Cons: larger page size, no browser caching. It's a trade-off!
I use this for small icons and logos where the simplicity outweighs the performance cost. Definitely not for photos!