就是将逐行显示的图片改为先模糊后清晰的那种。

imageinterlace()

imagecreatefromjpeg()

imagecreatefrompng()

直接上代码:

<?php 
/* 
 * 批量修改图片【激活隔行扫描】,将目录中所有JPG、PNG图像文件修改为渐进式JPG
 * @author 朱宏亮
 * @parameter 图像文件夹路径
 *
 */
set_time_limit(0);
function showDir( $filedir ) { 
 echo '开始处理<hr />';
 //打开目录 
 $dir = @ dir($filedir); 
 
 $index = 1; 
 
 //遍历目录中的文件 
 while (($file = $dir->read())!==false) 
 { 
 if(is_dir($filedir."/".$file) AND ($file!=".") AND ($file!="..")) { 
 //
 // 忽略子文件夹
 // 
 //echo "dirname: ".$file."<br />"; 
 //showDir($filedir."/".$file); 
 } else { 
 if($file == '.') continue;
 if($file == '..') continue;
 
 //echo "filename: " .$filedir."/".$file . "<br />"; 
 $fileNames = explode('.',$file);
 $suffix = $fileNames[count($fileNames)-1];
 
 if($suffix == 'png'){
 
 $im = imagecreatefrompng($filedir.'/'.$file);//加载PNG图片文件
 
 }else if($suffix == 'jpg' || $suffix == 'jpeg'){
 
 $im = imagecreatefromjpeg($filedir.'/'.$file);//加载JPG图片文件
 
 }else{ 
 echo "跳过图片:$file <br />";
 //其他格式的图片 直接跳过 不处理
 continue;
 }
 
 //开启交错式显示(渐进式)
 //第二个参数为 1 则是渐进式,参数为 0 则为逐行扫描
 imageinterlace($im, 1);
 
 //第二个参数是文件路径+文件名称,第三个参数是图片质量,最大100
 //文件夹内若有冲突图片名称,会直接覆盖文件
 Imagejpeg($im, $filedir.'/new/'.$index.'.jpg', 70); 
 
 $index++;
 
 ImageDestroy($im); 
 
 } 
 } 
 
 
 $dir->close(); 
 echo '<hr /> 完成!'; 
}

showDir("foimage"); //参数是文件夹路径

?>

 

 

 

发表评论