首頁 > 後端開發 > php教程 > 掃描一個檔案目錄下所有圖片,縮放後放在另一個目錄

掃描一個檔案目錄下所有圖片,縮放後放在另一個目錄

WBOY
發布: 2016-07-25 08:51:05
原創
1068 人瀏覽過
  1. 圖片批次縮放
  2. class tool_slt_resize{
  3. public $width=null;
  4. public $height=null;
  5. public $MMsg=null;
  6. publicsgension_🎜> public $MMsg=null;
  7. 'jpg','gif','jpeg','png','bmp');
  8. public function __construct(){
  9. header('Content-type: text/html; charset=UTF-8' );
  10. }
  11. /**
  12. * 讀取一個資料夾下所有的檔案
  13. * @param $src 資料夾路徑
  14. * @return bool
  15. */
  16. public function getAllFile($src,$new){
  17. set_time_limit(0); //php腳本運行時間無限時
  18. ob_end_clean(); //關鍵1
  19. echo str_pad('',1024); //關鍵2
  20. $handle=opendir($src); //開啟目錄句柄
  21. while(($file=readdir($handle)) !== false){ //循環遍歷目錄下的所有檔案
  22. if($file != '.' && $file != '..' ) { //如果不是目前目錄或上層目錄
  23. $fullPath = $src.'/'.$file; //得到目前檔案的全路徑
  24. $newPath = $new.'/'.$file; //新的檔案存放路徑
  25. $dir=dirname($newPath);
  26. if(!file_exists($dir)){
  27. mkdir($dir);
  28. }
  29. if( is_dir($fullPath)){ //判斷是否表示一個資料夾
  30. $this->getAllFile($fullPath,$newPath); //是資料夾的話再遞歸執行一次函數
  31. }else{ //開始影像處理
  32. $extentsion=$this->get_extension($fullPath);
  33. if(in_array($extentsion,$this->extension)){ //後綴是否合法
  34. // echo $newPath .'';
  35. $im = imagecreatefromjpeg($fullPath);
  36. $width = imagesx($im);
  37. $height = imagesy($im);
  38. $this- >resize_to($im,$width,$height,$this->width,$this->height,$fullPath,$newPath);
  39. $msg= $fullPath.'處理完成';
  40. echo $msg;
  41. flush(); //刷新輸出緩衝
  42. }
  43. }
  44. }
  45. }
  46. echo '全部處理完成';
  47. }
  48. /**
  49. * 取得一些影像的資訊
  50. * getimagesize回傳一個四個單元的陣列($width, $height, $type, $attr)
  51. * @param $src
  52. * @return array
  53. */
  54. public function getImgInfo($src){
  55. return getimagesize($src);
  56. }
  57. /
  58. * 取得檔案字尾
  59. * @param $file
  60. * @return mixed
  61. */
  62. function get_extension($file){
  63. $info = pathinfo($file);
  64. return strtolower($info['extension']);
  65. }
  66. //圖片縮放
  67. public function resize_to($image,$width,$height,$dst_width,$dst_height,$path,$dstpath){
  68. // set_time_limit(0);
  69. $resize_width = 00; 🎜> $resize_height = 0;
  70. if($dst_width && $width > $dst_width ){
  71. $resize_width = 1;
  72. $width_ratio = $dst_width/dst_wid ($dst_height && $height > $dst_height){
  73. $resize_height = 1;
  74. $height_ratio = $dst_height/$height;
  75. }
  76. if($resize_height&&$resize_height&wid /寬度優先
  77. if($width_ratio $scale_org[0] = $width * $width_ratio;
  78. $scale_org[1] = $height * $width_ratio;
  79. $scale_org[1] = $height * $width_ratio;
  80. $scale_org[1] = $height * $width_ratio;
  81. $scale_org[1] = $height * $width_ratio;
  82. $scale_org[1] = $height * $width_ratio; $scale_org[1] = $height * $width_ratio; $scale_org[1] = $height * $width_ratio; $scale_org[1] = $height * $width_ratio; } }
  83. // 高度優先
  84. else{
  85. $scale_org[0] = $width * $height_ratio;
  86. $scale_org[1] = $height * $height_ratio;
  87. }
  88. }
  89. elseif($resize_width){
  90. $scale_org[0] = $dst_width;
  91. $scale_org[1] = $dst_width*$height/$width;
  92. } $scale_org[0] = $dst_height*$width/$height;
  93. $scale_org[1] = $dst_height;
  94. }
  95. if(function_exists("imagecopyres $newim = imagecreatetruecolor($scale_org[0], $scale_org[1]);
  96. imagecopyresampled($newim, $image, 0, 0, 0, 0, $scale_org[0], $scale_org[1] , $width, $height);
  97. }else{
  98. $newim = imagecreate($scale_org[0], $scale_org[1]);
  99. imagecopyresized($newim, $image, 0, 0, 0, 0,$scale_org[0], $scale_org[1], $width, $height);
  100. }
  101. ImageJpeg ($newim,$dstpath);
  102. ImageDestroy ($newim);
  103. }
  104. }
  105. $a=new tool_slt_resize(); //接受表單資料開始處理圖片
  106. $oldPath=isset($_GET['oldPath'])?$_GET['oldPath']:'';
  107. $newPath=isset($_GET['newPath' ) ) ])?$_GET['newPath']:'';
  108. $width=isset($_GET['width'])?$_GET['width']:'';
  109. $height= isset ( $_GET['height'])?$_GET['height']:'';
  110. $a->width=$width;
  111. $a->height=$height;
  112. if ( isset($_GET['提交'])){
  113. if($oldPath==''||$newPath==''||$width==''){
  114. echo '請正確填寫表單';
  115. 退出;
  116. }else{
  117. $a->getAllFile($oldPath,$newPath);
  118. }
  119. }
  120. ?>
  121. ?>
  122. ?>
  123. ?>
  124. ?>
  125. ?>
  126. ?>
  127. ?>
  128. ?>
  129. ?>
  130. ?> h1 > 圖片縮放縮放
複製程式碼


來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板