使用php批量旋转图片

在服务器上面有一批图片处理,方向不对头,要是用ps之类的软件来处理,肯定会耗费大量时间

于是写了一个小函数,使用php批量旋转图片,下面说一下思路:

先是用递归遍历目录,然后对要旋转的图像做出选择,然后进行旋转。

 

这么一大批的图片,非常费时间,php.ini默认程序内存和超时时间都是有限制的

超过了程序就会停止报:PHP Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 67108888 bytes)主机提示内存不足

 

对于主机提示内存不足的解决办法网上有好多:

  1、修改php.ini(保举)
memory_limit = 12M 改大数值
2、在程序里面添加如下语句
ini_set(”memory_limit”, ”12M”);
3、在根目录建立
.htaccess文件,添加如下内容
php_value memory_limit 12M
如果还不能解决,就把它改得再大一些。 

  最后注意的是重启服务器 

 下面是程序:非常菜的程序

$dir=”d:/web/baijiu/baijiu1″;
reimg($dir);

function reimg($dir){
$res=opendir($dir);//和fopen不一样
readdir($res);
readdir($res);
while($filename=readdir($res)){
$path=$dir.’/’.$filename;
if(is_dir($path)){
//echo $filename.’ is dir<br>’;
reimg($path);
}else{
if(preg_match(“/(d+).jpg/”,$filename,$match)){
// echo $path . ‘—‘ . $filename . ‘<br>’;

$degrees = 180;
// Content type
header(‘Content-type: image/jpeg’);
// Load
$source = imagecreatefromjpeg($path);
// Rotate
$rotate = imagerotate($source, $degrees, 0);
// Output
imagejpeg($rotate,$path);
}else{

//echo $path.’—‘.$filename.’—错误,没有您要找的图像<br>’;
}
}
}
}