When should certain image file types be used when building websites or interfaces, etc?
What are their points of strength and weakness?
I know that PNG &
As of 2018, we have several new formats, better support for previous formats and some clever hacks of using videos instead of images.
For photographs
jpg
- still the most widely supported image format.
webp
- New format from google. Good potential, though browser support is not great.
For Icons and graphics
svg
- whenever possible. It scales well in retina screens, editable in text editors and customisable via JS/CSS if loaded in DOM.
png
- if it involves raster graphics (ie when created in photoshop). Supports transparency which is very essential in this use-case.
For Animations
svg
- plus css animations for vector graphics. All advantages of svg + power of css animations.
gif
- still the most widely supported animated image format.
mp4
- if animated images are actually short video clips. Twitter / Whatsapp converts gifs to mp4.
apng
- decent browser support (i.e. no IE, Edge), but creating it is not as straightforward as gifs.
webp
- close to using mp4. Poor support
This is a nice comparison of various animated image formats.
Finally, whichever be the format, make sure to optimize it - There are tools for each format (eg SVGO, Guetzli, OptiPNG etc) and can save considerable bandwidth.