pyrsmk / metrogen
Metro风格相册生成器
2.0.0
2017-01-25 13:58 UTC
Requires
- php: >=5.4.0
README
Metrogen是一个小型库,旨在自动创建适用于metro风格相册(如Windows 8中所示)的元数据,以便集成。相册中每个位置的方位/尺寸都是随机的。
此库是Myriade 2项目的一部分(链接即将推出)。
安装
composer require pyrsmk/metrogen
使用
构造函数为生成相册提供了几个选项
block
: 块大小(以像素为单位)(默认:200
)columns
: 工作区的列数(此选项是必需的)rows
: 工作区的行数(此选项是必需的)shapes
: 允许的不同形状的列表(默认:['1x1', '1x2', '2x1', '2x2']
)margin
: 在每个元素周围添加的边距(默认:0
)
要创建metro相册,我们将所有工作区划分为块(具有固定像素大小),然后根据允许的形状生成形状以添加到相册中。工作区的大小根据块大小固定为列数和行数。
以下是一个快速示例,其中工作区为1600x1000
,其他有趣的形状和边距
$metrogen = new Metrogen\Metadata([ 'columns' => 8, 'rows' => 5, 'shapes' => ['1x1', '1x3', '3x1', '2x2', '3x2'], 'margin' => 5 ]); $metadata = $metrogen->generate(); var_dump($metadata);
它将打印
array(13) {
[0] => array(4) {
["x"] => int(0)
["y"] => int(0)
["width"] => int(200)
["height"] => int(600)
}
[1] => array(4) {
["x"] => int(200)
["y"] => int(0)
["width"] => int(400)
["height"] => int(400)
}
[2] => array(4) {
["x"] => int(600)
["y"] => int(0)
["width"] => int(600)
["height"] => int(400)
}
[3] => array(4) {
["x"] => int(1200)
["y"] => int(0)
["width"] => int(400)
["height"] => int(400)
}
[4] => array(4) {
["x"] => int(200)
["y"] => int(400)
["width"] => int(600)
["height"] => int(200)
}
[5] => array(4) {
["x"] => int(800)
["y"] => int(400)
["width"] => int(400)
["height"] => int(400)
}
[6] => array(4) {
["x"] => int(1200)
["y"] => int(400)
["width"] => int(400)
["height"] => int(400)
}
[7] => array(4) {
["x"] => int(0)
["y"] => int(600)
["width"] => int(600)
["height"] => int(200)
}
[8] => array(4) {
["x"] => int(600)
["y"] => int(600)
["width"] => int(200)
["height"] => int(200)
}
[9] => array(4) {
["x"] => int(0)
["y"] => int(800)
["width"] => int(600)
["height"] => int(200)
}
[10] => array(4) {
["x"] => int(600)
["y"] => int(800)
["width"] => int(600)
["height"] => int(200)
}
[11] => array(4) {
["x"] => int(1200)
["y"] => int(800)
["width"] => int(200)
["height"] => int(200)
}
[12] => array(4) {
["x"] => int(1400)
["y"] => int(800)
["width"] => int(200)
["height"] => int(200)
}
}
许可证
MIT.