0
我有一個調整圖像大小的功能,它需要它們的名字。現在我想要做的只是將一個腳本放在一個目錄中,運行一次,並且它應該在所有這些圖像上運行該功能。PHP循環通過當前目錄文件進行圖像大小調整
在另一篇文章中,我發現了一些關於DirectoryIterator的信息,但是不能讓該目錄爲空來模仿當前文件夾。我該怎麼做呢?
下面的代碼工作的一個指定的文件夾(因此不是當前文件夾)
<?php
function Resize_Image($save,$file,$t_w,$t_h,$s_path,$o_path){
$s_path = trim($s_path);
$o_path = trim($o_path);
$save = $s_path . $save;
$file = $o_path . $file;
$attrib = getimagesize($file);
$width = $attrib[0];
$height = $attrib[1];
if(($width>$t_w) || ($height>$t_h)){
$r1 = $t_w/$width;
$r2 = $t_h/$height;
if($r1<$r2){
$size = $t_w/$width;
}else{
$size = $t_h/$height;
}
}else{
$size=1;
}
$modwidth = $width * $size;
$modheight = $height * $size;
$tn = imagecreatetruecolor($modwidth, $modheight);
switch($attrib['mime']){
case "image/gif":
$image = imagecreatefromgif($file);
break;
case "image/jpeg":
$image = imagecreatefromjpeg($file);
break;
case "image/png":
$image = imagecreatefrompng($file);
break;
}
imagecopyresampled($tn, $image, 0, 0, 0, 0, $modwidth, $modheight, $width, $height);
imagejpeg($tn, $save, 100);
return;
}
$dir = new DirectoryIterator("files/");
foreach ($dir as $fileinfo) {
if (!$fileinfo->isDot()) {
$fullname = $fileinfo->getFilename();
Resize_Image($fullname,$fullname,1366,767,'files/','files/');
}
}
?>
'__PATH__'不被支持,但第二種方法確實有效。然而,當我嘗試在我的服務器上運行任何腳本時,我得到一個500內部服務器錯誤,所以我想我設置了一些錯誤... – jdepypere
由於活網站上的服務器錯誤,我決定使用FTP並在本地執行,我的本地服務器也不會超時,所以我不需要爲大量圖像提供解決方法。謝謝! – jdepypere