изменить размер изображения с помощью php - PullRequest
1 голос
/ 15 ноября 2011

В админ-панели моего сайта есть возможность загружать изображения разной ширины и высоты.Мне нужно показать эти изображения на моей домашней странице с фиксированной шириной '176' и высотой '100'. Я устанавливаю ширину и высоту, как это показано на моей домашней странице:

<img src="<?php echo base_url()?>affliateimages/<?php echo $randimagep2->varaffimage ?>" width='176' height='100' />

Но проблема в том,что когда я загружаю изображение большой / маленькой ширины и высоты, оно показывается как искаженное на моей домашней странице.Как я могу изменить размер изображения в качестве предложения с помощью php?

Ответы [ 2 ]

0 голосов
/ 15 ноября 2011
function resizeImg($imgsrc ,$maxW='*', $maxH='*', $allowScaleUp=0,$returnHTML="alt='image'")
{
 if($s=getimagesize($imgsrc)){
  $oW=$s[0];$oH=$s[1];
  if(($oW>$maxW && $maxW!='*') || ($oH>$maxH && $maxH!='*') || $allowScaleUp){//if resize is needed:
   if($maxW && $maxH=='*'){ //constrain by width:
    $proportion=$oH/$oW;
    $w=$maxW;
    $h=$maxW*$proportion;   
   }else if($maxH && $maxW=='*'){ //constrain by height:
    $proportion=$oW/$oH;
    $h=$maxH;
    $w=$maxH*$proportion;
   }else if(!$maxW && $maxH){ //constrain by smallest side:
    return($oW>$oH ? resizeImg($imgsrc, '*', $maxH, $allowScaleUp, $returnHTML) : resizeImg($imgsrc, $maxW, '*', $allowScaleUp, $returnHTML));
   }else if($maxW && !$maxH){ //constrain by largest side:
    return($oW>$oH ? resizeImg($imgsrc, $maxW, '*', $allowScaleUp, $returnHTML) : resizeImg($imgsrc, '*', $maxH, $allowScaleUp, $returnHTML));
   }else{
    return($maxW>$maxH ? resizeImg($imgsrc, '*', $maxH, $allowScaleUp, $returnHTML) : resizeImg($imgsrc, $maxW, '*', $allowScaleUp, $returnHTML));
   }
  }else{
   $w=$oW;$h=$oH;
  }
  //echo "orig: ".$oW."x:".$oH."<br />max: ".$maxW."x".$maxH."<br />new: ".$w."x".$h."<br />"; //debug
  $w=round($w); $h=round($h);
  return array(0=>$w,1=>$h,"width"=>$w,"height"=>$h);
 }else{//file does not exist or is not an image:
  return false;
 }
}

// использование $ hwarr = resizeImg ("путь к изображениям", 176 100);

0 голосов
/ 15 ноября 2011

Я сделал большинство своих сценариев на основе этого простого класса: здесь

Должен это сделать.

...