JPGファイルをアップロードしたら縮小画像を自動作成 - M-Blog

JPGファイルをアップロードしたら縮小画像を自動作成

JPGファイルをアップロードしたら縮小画像を自動作成

ギャラリーページを作るまで

  1. JPGファイルをアップロードしたら縮小画像を自動作成
  2. ギャラリーを作成する
  3. srcsetに対応してみた

写真編集ソフトを買ったのでギャラリーでも作っとこうかと思いました。ややこしいことをせずにEvolution CMSでギャラリーを作成します。

まずは、ワードプレスなんかである画像をアップロードしたら縮小サイズも自動作成してくれるプラグインです。

縮小するだけなのでクロッピングには対応していません。ギャラリーを作成するならこれくらいでいいと思います。

プラグイン「resizeImage」

システムイベントは「OnFileManagerUpload」と「OnFileBrowserUpload」

OnFileManagerUploadは管理画面からアップロードしたとき、OnFileBrowserUploadはリソースからアップロードしたときです。

//Resize(ソース, 作成後の長辺の長さ, 画質, ファイル名に文字を追加);
function Resize($src='', $longSide='1200', $quality='70', $suffix=''){
	if(!isset($src))return;
	//画像情報
	$baseImage = imagecreatefromjpeg($src);
	list($src_w, $src_h) = getimagesize($src);
	
	//サイズ計算
	if($src_w > $src_h && $src_w > $longSide){
		$dst_w = $longSide;
		$dst_h = round($src_h * $dst_w / $src_w);
	}elseif($src_w < $src_h && $longSide < $src_h){
		$dst_h = $longSide;
		$dst_w = round($src_w * $dst_h / $src_h);
	}elseif($src_w == $src_h && $src_w > $longSide && $longSide < $src_h){
		$dst_w = $longSide;
		$dst_h = $longSide;
	}else{
		return;
	}
	
	//画像の作成	
	$pathData = pathinfo($src);
	$saveFile = $pathData['dirname'].'/'.$pathData['filename'];
	$saveFile = $saveFile.$dst_w.'x'.$dst_h.$suffix.'.jpg';
	if(!file_exists($saveFile)){
		$Image = imagecreatetruecolor($dst_w, $dst_h); 
		imagecopyresampled($Image, $baseImage, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h);
		imagejpeg($Image, $saveFile, $quality);
		imagedestroy($Image);
	}else{
		return;
	}
}

//jpgファイル判定
$src = $filepath.'/'.$filename;

if(file_exists($src) && exif_imagetype($src) == IMAGETYPE_JPEG){
	//Lサイズ
	Resize($src, 1200);
	//Mサイズ
	Resize($src, 960);
	//Sサイズ
	Resize($src, 640);
}else{
	return;
}

サンプル

アップロードした場所に作成されます。

オリジナル

Lサイズ(sample_1200x900.jpg)

Mサイズ(sample_960x720.jpg)

Sサイズ(sample_640x480.jpg)


2018年10月24日 / CMS

カテゴリー

アーカイブ

最近の投稿

最近の更新

リンク