javascripthtmlimagewebp

Detecting WebP support


How can I detect support for WebP via Javascript? I'd like to use feature detection rather than browser detection if possible, but I can't find a way to do so. Modernizr (www.modernizr.com) doesn't check for it.


Solution

  • This is my solution - is taking around 6ms and I'm considering WebP is only a feature for a modern browser. Uses a different approach using canvas.toDataUrl() function instead of image as the way to detect the feature:

    function support_format_webp()
    {
     var elem = document.createElement('canvas');
    
     if (!!(elem.getContext && elem.getContext('2d')))
     {
      // was able or not to get WebP representation
      return elem.toDataURL('image/webp').indexOf('data:image/webp') == 0;
     }
     else
     {
      // very old browser like IE 8, canvas not supported
      return false;
     }
    }