dev-master
9999999-devArrange Images with percentages
BSD-3-Clause
The Requires
- php ^7
The Development Requires
by Ivan Kerin
Wallogit.com
2017 © Pedro Peláez
Arrange Images with percentages
Arrange Images with percentages, (*2)
Install via composer, (*3)
composer require clippings/fluid-gallery
Conseptually, you pile images (or videos) into a ItemGroup and then line by line extract using custom sizing logic., (*4)
$gallery = new ItemGroup([
new Item(100, 200, 'http://example.com/1.jpg'),
new Item(200, 100, 'http://example.com/2.jpg'),
new Item(100, 100, 'http://example.com/3.jpg'),
new Item(300, 200, ['url' => 'http://example.com/video.mov', 'type' => 'video']),
]);
$gallery->setMargin(15);
// extract some of the images into another group
$group = $gallery->extract(function ($group) {
// The returned items are removed from the parent gallery
return $group
// get only images with text urls
->filter(function (Item $item) {
return is_string($item->getContent());
})
// set the hight of all the images to 50, preserving the aspect ratios
->setHeight(50)
// Get a slice of the images, arranged horizontally, no wider than 200 pixels
->horizontalSlice(200)
// Scale horizontally arranged images to exactly 200, keeping aspect ratios
->scaleToWidth(200);
});
foreach ($group as $item) {
echo $item->getContent();
}
// Get the remaining items
echo $gallery[0]->getContent()['url'];
Copyright (c) 2015, Clippings Ltd. Developed by Ivan Kerin, (*5)
Under BSD-3-Clause license, read LICENSE file., (*6)
Arrange Images with percentages
BSD-3-Clause