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