In a previous post…
@gerardkd pointed me to a very simple solution for image resizing, handled by Kirby. Something very basic and perfect that I’d overlooked.
I still wanted a way to serve up art-directed image sizes for smaller devices. In other words, not just smaller versions (thumbs), but alternately cropped smaller versions.
For instance, with these images in a content folder:
image-lg.jpg and image-sm.jpg (or even more sizes, if you want, of course)
-
Get the image URL
The images must have the same file name, but with a unique suffix ( ‘-lg’ or ‘-sm’ ), so grabbing image()->url() will just get the FIRST one. This is sufficient, since they have the same root name. -
Start at the end of the full URL and remove 7 characters. This will remove either -lg.jpg or -sm.jpg.
Now we have the URL with just the root of the filename. Feed that into this picturefill module:
<?php
$image_name = $page->image()->url();
$image_root = substr($image_name, 0, -7);
echo '<picture class="fit">
<source srcset="'.$image_root.'-lg.jpg" media="(min-width: 1200px)">
<source srcset="'.$image_root.'-sm.jpg" media="(min-width: 800px)">
<img srcset="'.$image_root.'-sm.jpg" alt="'.$page->$alttext()->html().'">
</picture>';
?>