• Welcome to Journal web site.

我是 视觉 设计师

让设计传递下去

Next
Prev

利用PHP给图片按照宽高比例进行分类

Data: 2020-04-05 16:05:45Form: JournalClick: 11

    手上最近在研究一个百万级数据量图库,需要把图片按照比例来进行快速分类的需求,这里记录一下代码思路以便下次遇到类似的可以快速用上,需要分类的图片是按照五个比例进行分类:超宽横版,横版,正方形排版,竖版,超长竖版。在开始之前我们先缕一下思路,先获取图片的真实宽高后计算图片比例,再以比例进行分类。

    先获取图片的真实宽高,PHP下有个好用的函数getimagesize();导入图片地址后会返回图片的信息数组

Array ( [0] => 100 [1] => 60 [2] => 3 [3] => width="100" height="60" [bits] => 8 [mime] => image/png )

完整代码如下:

 //求最大公约数
 function divisor($a, $b){
   if($a % $b)
  return $this->gcd($b, $a % $b);
   else
  return $b;
 }
 //获取图片比例
 function scale($width,$height){
  $scale=array();
  $n = divisor($width, $height);
  $scale[0]=$width/$n;
  $scale[1]=$height/$n;
  if($scale[0]==$scale[1]){
   //正方形构图
   $scale[2]='正方形';
  }elseif($scale[0]>$scale[1]){
   //横版构图
   if(($scale[0]/$scale[1])>2.5){
    //细长横版
    $scale[2]='细长横版';
   }else{
    $scale[2]='横版';
   }
  }else{
   //竖版
   if(($scale[1]/$scale[0])>2.5){
    //细长竖版
    $scale[2]='细长竖版';
   }else{
    $scale[2]='竖版';
   }
  }
  return $scale;
 }

从代码运用方法:
$size = getimagesize('图片地址');
$scale=scale($size[0],$size[1]);

$scale[0]和$scale[1]是图片的比例,$scale[2]就是我们需要的的图片布局归类信息,希望可以帮到需要的人。

Name:
<提交>