Server-side decoding
$file->blurhashUri()
Encodes the image with BlurHash, then decodes & rasterizes it. Finally returns it as a data URI which can be used without any client-side library.
In addition to simply outputting the BlurHash string for usage on the client-side, this plugin also provides a server-side decoding option that allows you to output a base64-encoded image string, which can be used as a placeholder image without any client-side libraries, similar to Kirby Blurry Placeholder.
This is especially useful when you only have a few images on your site or don't want to go through the hassle of using a client-side library for outputting placeholders. Using this approach, you'll still get better color representation of the BlurHash algorithm than with regularly downsizing an image, but image previews will still be about ~1kB large.
<img src="<?= $image->blurhashUri() ?>" />
With an lazy-loading library like vanilla-lazyload your implementation could look like this:
<img
src="<?= $image->blurhashUri() ?>"
data-src="<?= $image->url() ?>" // Original src attribute that will be replaced by the lazy-loading library
data-lazyload // Attribute for browser to know what to lazy-load
alt="<?= $image->alt() ?>"
/>
import LazyLoad from 'vanilla-lazyload'
const lazy = new LazyLoad({ elements_selector: '[data-lazyload]' })