PHP检查与测试;调整图像大小以满足Instagram要求
Instagram图像比率要求如下:PHP检查与测试;调整图像大小以满足Instagram要求,php,laravel,instagram,Php,Laravel,Instagram,Instagram图像比率要求如下: 1:1 4:5 1.91:1 16:9 读了又读。还说: (…)建议应用程序用户使用与 4:5到1.91:1的范围 尽管文档中没有说明,但我知道以1:1的比例发布照片是可行的 因此,我想检查上传的图像是否符合要求,如果不调整大小以满足要求(通过缩小或放大)。我用的是拉威尔 为了检查纵横比,我使用以下代码: public function isRatioValid($img) { $manager = new ImageManager(['driv
- 1:1
- 4:5
- 1.91:1
- 16:9
public function isRatioValid($img)
{
$manager = new ImageManager(['driver' => 'imagick']);
$image = $manager->make($img);
$width = $image->width();
$height = $image->height();
for ($i = $height; $i > 1; $i--)
{
if (($width % $i) == 0 && ($height % $i) == 0)
{
$width = $width / $i;
$height = $height / $i;
}
}
$ratio = "{$width}:{$height}";
if (!in_array($ratio, ['1:1', '4:5', '1.91:1', '16:9']))
return false;
return true;
}
问题:
已解决 检查纵横比的代码不正确。要正确检查它,我们需要做的就是将宽度除以高度,看看它是否符合Instagram的要求
function isRatioValid(...)
{
$width = 400;
$height = 711;
// 1:1 - squares
if ($width == $height)
return true;
$ratio = round($width / $height, 3);
// Portrait: min 0.8 | max 0.99
// Landscape: min 1.01 | max 1.91
if ($width < $height)
if ($ratio >= 0.8 && $ratio <= 0.99)
return true;
if ($width > $height)
if ($ratio >= 1.01 && $ratio <= 1.91)
return true;
return false;
}
函数isRatioValid(…)
{
$width=400;
$height=711;
//1:1-正方形
如果($width==$height)
返回true;
$ratio=圆形($width/$height,3);
//纵向:最小0.8 |最大0.99
//景观:最小1.01 |最大1.91
如果($width<$height)
如果($ratio>=0.8&&$ratio$height)
如果($ratio>=1.01&&$ratio回答1:这取决于你是否可以。这是你的代码。回答2:你在调整图像大小方面做了哪些尝试?你遇到了什么问题?这不取决于我。我刚刚测试过,图像大小570x370发布到Instagram,但计算出的比率是57:37,因此没有意义。我需要帮助检查ratio pro这是小学数学,57:37=1.54:1,有点接近16:9。