-
- 图片批判量放
- < style type="text/css">
- label{width:150px;display: inline-block;}
-
-
- class tool_slt_resize{
- public $width =null;
- public $height=null;
- public $Msg=null;
- public $extension=array('jpg','gif','jpeg','png','bmp');
- public function __construct( ){
- header('Content-type: text/html; charset=UTF-8');
- }
- /**
- * フォルダー内のすべてのファイルを読み取ります
- * @param $src フォルダーのパス
- * @return bool
- */
- public function getAllFile($src,$new){
- set_time_limit(0) ); //php スクリプト実行時間無制限
- ob_end_clean(); //关键1
- echo str_pad('',1024); //关键2
- $handle=opendir($src); //打开一句个目录柄
- while(($file=readdir($handle)) !== false){ //巡环遍历目录下のすべての文件
- if($file != '.' && $file != ' ..' ){ //如果不是当前目录または上層目录
- $fullPath = $src.'/'.$file; //現在の文書の全路径を取得
- $newPath = $new.'/'.$file; //新しい文書の存放路径
- $dir=dirname($newPath);
- if(!file_exists($dir)){
- mkdir($dir);
- }
- if(is_dir($fullPath)){ // 判断1 つのファイルを表示するかどうか $this->getAllFile($fullPath,$newPath); // 文件夹の话再递归実行一次関数
- }else{ //画像処理の開始 $extentsion=$this->get_extension($fullPath);
- if(in_array($extension,$this->extension) ){ //後缀か合法
- // echo $newPath.'';
- $im = imagecreatefromjpeg($fullPath);
- $width = imagex($im);
- $height = imagey($im );
- $this->resize_to($im,$width,$height,$this->width,$this->height,$fullPath,$newPath);
- $msg= $fullPath.'処理が完了しました';
- echo $msg;
- flash(); //刷新输出缓冲
- }
- }
- }
- }
- echo '全部处処理完了';
- }
-
-
- /**
- * いくつかの画像情報を取得します
- * getimagesize は 4 つの単位 ($width、$height、$type、$attr) の配列を返します
- * @param $src
- * @return array
- */
- public function getImgInfo($src){
- return getimagesize($src) ;
- }
-
- /**
- * ファイルのサフィックスを取得します
- * @param $file
- * @returnmixed
- */
- function get_extension($file){
- $info = pathinfo($file);
- return strto lower($info['extension']);
- }
- //画像缩放
- public function raise_to($image,$width,$height,$dst_width,$dst_height,$path,$dstpath){
- // set_time_limit(0);
- $resize_width = 0;
- $resize_height = 0;
- if ($dst_width && $width > $dst_width ){
- $resize_width = 1;
- $width_ratio = $dst_width/$width;
- }
- if($dst_height && $height > $dst_height){
- $resize_height = 1;
- $height_ratio = $dst_height/$height;
- }
- if($resize_height&&$resize_width){
- //宽度优先
- if($width_ratio < $height_ratio){
- $scale_org[0] = $width * $width_ratio;
- $scale_org[1] = $height * $width_ratio;
- }
- // 高さ优先
- else{
- $scale_org[0] = $width * $height_ratio;
- $scale_org[1] = $height * $height_ratio;
- }
- }
- elseif($resize_width){
- $scale_org[0 ] = $dst_width;
- $scale_org[1] = $dst_width*$height/$width;
- }
- elseif($resize_height){
- $scale_org[0] = $dst_height*$width/$height;
- $scale_org[ 1] = $dst_height;
- }
- if(function_exists("imagecopyresampled")){
- $newim = imagecreatetruecolor($scale_org[0], $scale_org[1]);
- imagecopyresampled($newim, $image, 0, 0 , 0, 0, $scale_org[0], $scale_org[1], $width, $height);
- }else{
- $newim = imagecreate($scale_org[0], $scale_org[1]);
- imagecopyresize( $newim, $image, 0, 0, 0, 0,$scale_org[0], $scale_org[1], $width, $height);
- }
- ImageJpeg ($newim,$dstpath);
- ImageDestroy ($newim );
- }
- }
- $a=新しいtool_slt_resize(); //受領表データベース開始処理图片
- $oldPath=isset($_GET['oldPath'])?$_GET['oldPath']:'';
- $newPath=isset($_GET['newPath'])?$ _GET['newPath']:'';
- $width=isset($_GET['width'])?$_GET['width']:'';
- $height=isset($_GET['height']) ?$_GET['高さ']:'';
- $a->幅=$幅;
- $a->高さ=$高さ;
- if(isset($_GET['submit'])){
- if($oldPath==''||$newPath==''||$width==''){
- echo '请正确充填写表单';
- exit;
- }else{
- $a->getAllFile( $oldPath,$newPath);
-
- }
- }
- ?>
-
图片批量缩放
-
-
-
-
- < input type="text" name="width" value="">
-
-
-
- body>
复制代
|