just wondering why
Because Base64 has fewer meaningful bits per byte than a binary data format (usually 6 instead of 8). This is specifically so it can survive various textual transformations that binary data would not.
Wikipedia's page has a good diagram showing this:
Note how the Base64 is only using the bottom six bits of each byte, and so "Man" ends up being four bytes long.
It is easy to understand for image file since since it may lose some compression
No, Base64 encoding is lossless. When you decode it, you get byte-for-byte what you started with.