2013-02-21 83 views
1

我想产生一些随机placekitten网址,像这样:如何在PHP中随机生成图像尺寸?

http://placekitten.com/200/300

要为我的那一刻开发网站上paceholders使用。图片必须不小于100像素,宽度不得大于250像素。我生成宽度如下:

$width = mt_rand(100, 250); 

但我不知道如何生成高度。根据生成的随机宽度,高度应为适当的长宽比。怎么做?

最终的目标是:

​​
+1

如何确定宽高比?我认为placekitten可以采取你提供的任何规模,并相应地进行缩放/裁剪。您的意图是指定图像大小以适应您的设计模型需要。 – 2013-02-21 00:57:39

+0

什么意思是“基于随机宽度的适当宽高比”?你要找的长宽比是多少? – Pete 2013-02-21 00:58:47

+1

如果应该计算高度,为什么它必须在url中? – bitWorking 2013-02-21 00:58:51

回答

1

应尽可能简单:

$ratio = 200/300; 
$width = mt_rand(100, 250); 
$height = round($width/$ratio); 

看一些例子:

$ratio = 200/300; 
echo "base aspect ratio: ", round($ratio, 2), "\n\n"; 

foreach(range(1,10) as $_) { 
    $width = mt_rand(100, 250); 
    $height = round($width/$ratio); 
    echo "http://placekitten.com/{$width}/{$height}\n"; 
    echo "aspect ratio: ", round($width/$height, 2), "\n\n"; 
} 

输出

base aspect ratio: 0.67 

http://placekitten.com/229/344 
aspect ratio: 0.67 

http://placekitten.com/112/168 
aspect ratio: 0.67 

http://placekitten.com/241/362 
aspect ratio: 0.67 

http://placekitten.com/223/335 
aspect ratio: 0.67 

http://placekitten.com/196/294 
aspect ratio: 0.67 

http://placekitten.com/234/351 
aspect ratio: 0.67 

http://placekitten.com/116/174 
aspect ratio: 0.67 

http://placekitten.com/157/236 
aspect ratio: 0.67 

http://placekitten.com/165/248 
aspect ratio: 0.67 

http://placekitten.com/114/171 
aspect ratio: 0.67