PHP code example of area17 / twill-image
1. Go to this page and download the library: Download area17/twill-image library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
area17 / twill-image example snippets
$image = new A17\Twill\Image\Models\Image($object, $role, $media);
// or using the Facade
$image = TwillImage::make($object, $role, $media);
$image->crop('listing_card');
$image->width(1500);
$image->height(900);
$image->crop('listing')->width(600)->height(400);
$image->crop('desktop')->sources([
[
'mediaQuery' => '(max-width: 400px)', // ht' => 200, // optional
'srcSetWidths' => [100, 200, 400], // optional
],
[
'mediaQuery' => '(min-width: 401px) and (max-width: 700px)',
'crop' => 'tablet',
],
]);
$image->crop('desktop')->sources([
[
'columns' => [
'md' => 'max',
],
'crop' => 'mobile',
],
[
'columns' => [
'md' => 'min',
'lg' => 'max',
],
'crop' => 'tablet',
],
]);
$image->sizes('(max-width: 400px) 100vw, 50vw');
$image->columns([
'xxl' => 6,
'xl' => 6,
'lg' => 8,
'md' => 8,
'sm' => 8,
'xs' => 12,
]);
$image->srcSetWidths([100, 150, 300, 600, 1200, 2000, 2400, 3600, 5000]);
// config/twill-image.php
return [
// ...
'presets' => [
'art_directed' => [
'crop' => 'desktop',
'width' => 700,
'sizes' => '(max-width: 767px) 25vw, (min-width: 767px) and (max-width: 1023px) 50vw, 33vw',
'srcSetWidths' => [350, 700, 1400],
'sources' => [
[
'crop' => 'mobile',
'media_query' => '(max-width: 767px)',
'srcSetWidths' => [100, 200, 400],
],
[
'crop' => 'tablet',
'media_query' => '(min-width: 767px) and (max-width: 1023px)',
],
],
],
],
];
// to use this preset from the config file
$image->preset('art_directed');
$image->preset([
'crop' => 'desktop',
'width' => 700,
'sizes' => '(max-width: 767px) 100vw, (min-width: 767px) and (max-width: 1023px) 50vw, 33vw',
'sources' => [
[
'crop' => 'mobile',
'media_query' => '(max-width: 767px)',
],
[
'crop' => 'tablet',
'media_query' => '(min-width: 767px) and (max-width: 1023px)',
],
],
]);
$previewImage = TwillImage::make($page, 'preview')->preset('art_directed')->toArray();
$previewImage = TwillImage::make($page, 'preview')->toArray();
<div class="w-1/4">
{!! TwillImage::render($previewImage, [
'width' => 700,
]) !!}
</div>
return [
// ...
'presets' => [
'listing' => [
'crop' => 'card',
'width' => 500,
'sizes' => '25vw',
],
// ...
],
];
// ...
'art_directed' => [
'crop' => 'desktop',
'sizes' => '(max-width: 767px) 100vw, 50vw',
'sources' => [
[
'crop' => 'mobile',
'media_query' => '(max-width: 767px)',
]
],
],
// ...
// config/twill-image.php
return [
// ...
'presets' => [
'art_directed' => [
'crop' => 'desktop',
'columns' => [
'xxl' => 6,
'xl' => 6,
'lg' => 8,
'md' => 8,
'sm' => 8,
'xs' => 12,
],
'sources' => [
[
'crop' => 'mobile',
'columns' => [
'md' => 'max',
],
],
[
'crop' => 'tablet',
'columns' => [
'md' => 'min',
'lg' => 'max',
],
],
],
],
],
];
// config/twill-image.php
// ...
// default to: A17\Twill\Image\Services\ImageColumns::class
'columns_class' => MyApp\Services\MyOwnImageColumnsService::class,
];
bash
php artisan vendor:publish --provider="A17\Twill\Image\TwillImageServiceProvider" --tag=config
blade
{{-- resources/views/home.blade.php --}}
@php
$image = TwillImage::make($page, 'preview')->preset('art_directed');
@endphp
{!! $image->render() !!}
{{-- with arguments --}}
{!! $image->render([
'loading' => 'eager',
]) !!}
blade
{{-- resources/views/page.blade.php --}}
<div>{!! TwillImage::render($previewImage) !!}</div>
blade
{!! TwillImage::make($item, 'preview_image')->sizes('(max-width: 767px) 50vw, 100vw')->render(); !!}
@php
$heroImage = TwillImage::make($item, 'preview_image');
$listingImage = TwillImage::make($item, 'preview_image')->crop('listing');
@endphp
{!! TwillImage::render($heroImage) !!}
{!! TwillImage::render($listingImage) !!}
blade
@php
$image = TwillImage::make($page, 'preview')->preset('art_directed');
@endphp
<div>
{!! TwillImage::render($image, [
'class' => 'art-directed'
]) !!}
</div>