[Sanfen] 生活に便利な小さなコードです。写真を撮った後、ディレクトリの写真をバッチで再帰的にズームします。
新しい一眼レフカメラを購入してから 1 週間が経ちました。今日、ようやく妻と母を連れて行くことができました。ライチパークに行って一日写真を撮り、戻ってきたらアップロードする準備ができていますが、フォトアルバムにアクセスすると、すべての写真が少し大きすぎることに気づきました。ツールを見つけるのが非常に面倒でした。それで私はオンラインにアクセスしていくつかのコードをつなぎ合わせました。指定されたサイズ範囲に従って、指定されたディレクトリ内の画像をスケーリングし、後で写真を処理する際に使用するために指定されたディレクトリに出力します。
というコードが添付されています。
<br /> header('Content-type:text/html; charset=utf-8');<br /> require "lib/imgHelper.php";<br /> $imgHelper = new imgHelper( "dir1" );<br /> $imgHelper->setOutputDir( "dir2" );<br /> //默认输出在1024 768 下等比缩放,需要自定义时,$imgHelper->setOutputSize(1440,900);<br /> $imgHelper->execution();<br />
<br> <?php<br> /**<br> * 画像処理アシスタント<br> */<br> クラス imgHelper<br> {<br> パブリック $srcFiles // ソース ファイルの配列<br> パブリック $srcDirs; // ソース ディレクトリ <br> Public $exportDir; //出力ディレクトリ <br> Public $exportFiles // 出力ファイル配列<br> private $_option = array("maxWidth"=>"1024" , "maxHeight"=>"768");<br> <br> 関数 __construct($dir = '' , $option = array() )<br> {<br> if (!$dir) return;<br> $this->srcDirs = $dir;<br> $this->srcFiles = $this->traversal($dir);<br> $this->setOptions( $option);<br> }<br> <br> /**<br> *出力ディレクトリを設定します<br> * @param $dir<br> */<br> パブリック関数 setOutputDir( $dir )<br> {<br> If (! Is_dir ($ dir)) {mkdir ($ dir, 0777, 1);} <br> $this->exportDir = $dir;<br> }<br> <br> パブリック関数の実行()<br> {<br> foreach( $this->srcFiles as $key =>$val ):<br> $srcImg = $val;<br> $toFile = str_replace( $this->srcDirs, $this->exportDir, $srcImg); //簡単な処理を行います。<br> $maxWidth = $this->_option["maxWidth"];<br> $maxHeight = $this->_option["maxHeight"];<br> $this->resize($srcImg, $toFile, $maxWidth, $maxHeight);<br> エンドフォーリーチ;<br> }<br> <br> //画像をズームします。 <br> プライベート関数resize($srcImage,$toFile,$maxWidth = 100,$maxHeight = 100,$imgQuality=100)<br> {<br> // ディレクトリを作成します!<br> $pInfo = pathinfo( $toFile );<br> $dir = $pInfo["dirname"]; if(!is_dir( $dir) ){ mkdir($dir, 0777, 1);} <div class="clear"></div>