現在位置: よかブロ > 糟屋郡新宮町周辺の情報 > 裏方作業 > 【PHP】ディレクトリの中の画像データを圧縮する【裏方作業】

よかブロ

2012年5月26日 10:27 PM

【PHP】ディレクトリの中の画像データを圧縮する【裏方作業】

記事のテーマ:裏方作業

これまで各ブログ合わせて何百枚という写真が掲載されました。画像のデータはサーバーの許容量を簡単に圧迫してしまうので、掲載された画像を圧縮するプログラムを作りました。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function compression($src) {
	$fs = filesize($src);
	if($fs > 30000) {
		$jpg = imagecreatefromjpeg($src);
		$comp = 75;
		while($fs > 30000 && $comp > 0) {
			imagejpeg($jpg, $src, $comp);
			$fs = filesize($src);
			clearstatcache();
			$comp = $comp-5;
		}
	imagedestroy($jpg);
	}
}
 
$dir_blog = '10';
$dir_month = '04';
$res_dir = opendir( "./wp-content/blogs.dir/{$dir_blog}/files/2012/{$dir_month}/" );
 
while( $file_name = readdir( $res_dir ) ){
	if (preg_match("/.+\.jpg$/i", $file_name)) {
		compression("./wp-content/blogs.dir/{$dir_blog}/files/2012/{$dir_month}/".$file_name);
	}
 
}
closedir( $res_dir );

ブログの番号と月を指定して、そのディレクトリにあるJPGファイルだけを約30KB以上ある場合はそれ以下に圧縮するという流れです。

 

これで、元々16.63MBあった一つのブログの容量を9.42MBまで減らすことが出来ました。(43.35%減)全体で約半分ぐらいに圧縮出来るなんて、なんて財布にやさしいのでしょう (*_*)

 

画像が保存されているディレクトリ全てを一度に処理すると処理時間がオーバーするし、中にはブログのメイン画像のように、圧縮しなくても良い画像もあるので、ある程度は手動で融通が利くようにしています。

 

実はこの記事が記念すべき200個目の記事だったりします・・・これで良かったのかな?(´・ω・`)

 

とにかく、皆さんにはサーバーの容量を気にせずバンバン写真を掲載して読者の方を楽しませていただきたいので、裏方作業でしっかりバックアップしていきます (^_^)


にほんブログ村 地域生活(街) 九州ブログへ

あわせて読みたい