Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php GD IMAGE Resize循环在第一次迭代后失败。_Php_Gd - Fatal编程技术网

Php GD IMAGE Resize循环在第一次迭代后失败。

Php GD IMAGE Resize循环在第一次迭代后失败。,php,gd,Php,Gd,下面的函数应该动态调整用户上传图像的大小,并循环将副本放入5个不同的文件夹中。它工作正常,除了一个问题:循环成功执行一次,然后停止。我已经检查过count()返回的上限值是正确的,即5。不知道为什么在第一次迭代后它会停止。提前感谢您的帮助 <?PHP public function imgResize($image){ $userPath=$_SESSION['userFolder'].'/images'; $imgDetails=explode('/',$image

下面的函数应该动态调整用户上传图像的大小,并循环将副本放入5个不同的文件夹中。它工作正常,除了一个问题:循环成功执行一次,然后停止。我已经检查过count()返回的上限值是正确的,即5。不知道为什么在第一次迭代后它会停止。提前感谢您的帮助

<?PHP 

public function imgResize($image){

    $userPath=$_SESSION['userFolder'].'/images';
    $imgDetails=explode('/',$image);
    $imgName=$imgDetails[2];

    $newWidth='1024';
    $newHeight='768';

    $size=getimagesize($image);
    $imgType=$size['mime'];

    $reqdWidths=array('800','1024','1400','1600','2400');
    $width=$size[0];
    $height=$size[1];

    $dest=imagecreatetruecolor($newWidth,$newHeight);

 /*Put image create functions in a switch-case to deal with multiple image types*/ 
 function createImage($img){
     $size=getimagesize($img);
     $typeImg=$size['mime'];

    switch($typeImg){
     case 'image/png': 
     $newImage=imagecreatefrompng($img);
     return $newImage;
     break;

     case 'image/jpeg': 
     $newImage=imagecreatefromjpeg($img);
     return $newImage;
     break;

     case 'image/gif' :
     $newImage=imagecreatefromgif($img);
     return $newImage;
     break;
      }
    }

  function finalImg($imgType,$dest,$userDestImage){
   switch($imgType){
     case 'image/png': 
     $final=imagepng($dest,$userDestImage);
     return $final;
     break;

     case 'image/jpeg': 
     $final=imagejpeg($dest,$userDestImage);
     return $final;
     break;

     case 'image/gif' :
     $final=imagegif($dest,$userDestImage);
     return $final;
     break;
      }
  }  

    $source=call_user_func('createImage',$image);
    /*LOOP AND CREATE DIFFERENT IMAGES IN DIFFERENT FOLDERS*/
    for($i=0;$i<count($reqdWidths);$i++){
    $userDestImage=$userPath.'/width_'.$reqdWidths[$i].'/'.$imgName;

    imagecopyresized($dest,$source,0,0,0,0,$newWidth,$newHeight,$width,$height );
    $imgFinal=call_user_func('finalImg',$imgType,$dest,$userDestImage);
    return $imgFinal; 
    imagedestroy($dest);
  }

 }//END FUNCTION

函数内部函数-很可能是个坏主意。请注意:为什么在这里使用
call\u user\u func()
?返回$imgFinal;'在“for”循环内,将导致函数结束。在“for”循环的结束“}”之后移动它;瑞安·文森特…谢谢,绝对是这样!