ロト君のサイト by lotokunn

L'sCore ロト君のサイトへようこそ!

  1. TOP
  2. パソコン
  3. PHP Image Resize

PHP Image Resize

皆さんこんにちは!今晩は!!ロト君です。
今回は画像をリサイズするfunctionを作ったので記載しときます。

1.内容
function(関数化)しとくと、繰り返し処理を行う際にとても便利です。
いちいち、記述しなくて済むので楽ちんですね!!

基本はメインphp中から呼び出したfunctionをreturnする事によって、結果を返します。
返す結果はlist()中に格納させます。

2.コード
基本コードは下記のものです。
コメントは各変数の説明です。

<?php
/*
$file1 temp_name
$file2 保存先
$file3 no_image
$file4 元画像
$min_widith 最小幅
$min_height 最小高さ
$disp 表示src
$tips 説明
*/
function img_resize($file1,$file2,$file3,$file4,$min_width,$min_height){
$rename = date('YmdHis'); //リサイズ後のファイル名
if (is_uploaded_file($file1)) {
$image_type = exif_imagetype($file1); // 画像タイプ判定用

if ($image_type == IMAGETYPE_JPEG){ // JPGかどうか判定
$file2 = $file2."/".$rename.".jpg"; // 画像保存先のパス
$disp = $file2;
$tips = "<p>画像をアップロードしました。</p>";
$in = ImageCreateFromJPEG($file1); // 元画像ファイル読み込み
$width = ImageSx($in); // 画像の幅を取得
$height = ImageSy($in); // 画像の高さを取得

if($width >= $min_width|$height >= $min_height){
if($width == $height) {
$new_width = $min_width;
$new_height = $min_height;
} else if($width > $height) {//横長の場合
$new_width = $min_width;
$new_height = $height*($min_width/$width);
} else if($width < $height) {//縦長の場合
$new_width = $width*($min_height/$height);
$new_height = $min_height;
}
// 画像生成
$out = ImageCreateTrueColor($new_width , $new_height);
ImageCopyResampled($out, $in,0,0,0,0, $new_width, $new_height, $width, $height);
ImageJPEG($out, $file2);
} else {
if(strlen($file4) > 0){$disp = $file4;}
if(strlen($file4) <= 0){$disp = $file3;}
$tips = "<p>サイズが幅".$min_width."×高さ".$min_height."以上の画像をご用意ください!!</p>";
}
}else{
if(strlen($file4) > 0){$disp = $file4;}
if(strlen($file4) <= 0){$disp = $file3;}
$tips = "<p>JPG画像をご用意ください!!</p>";
}
}else{
// 画像をアップしていない場合
if(strlen($file4) > 0){$disp = $file4;}
if(strlen($file4) <= 0){$disp = $file3;}
$tips = "<p>画像のアップロードはありません。</p>";
}
return array($disp, $tips);
}
?>

上記のphpが『img_resize.php』です。
この関数を呼ぶメインphpは下記のものです。

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div>
<?php
include("img_resize.php");
list($disp,$tips) = img_resize($_FILES["image"]["tmp_name"],"./img/test","./img/parts/no_image.jpg","",500,500);
?>
<form method="post" action="./test.php" enctype="multipart/form-data">
<input type="submit" name="" value="送信">
<input type="file" name="image" accept=".jpg">
</form>
<img src="<?php print $disp; ?>">
<p><?php print $tips; ?></p>
<?php include("./footer.php"); ?>

includeしたimg_resizeを関数で呼び出し、そのreturn結果をlist()中に配列化してます。
returnの結果は上記の様に配列された変数を使います。

以上、こんな感じで簡単に画像のリサイズfunctionを作る事が出来ます。
使い方を覚えると、とても便利ですね!!
functionサイコー!!では。(>ω<)ノシ


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA



Hello!!

皆さんこんにちは!こんばんは!!ロト君です。

このサイトは私が興味を持ったモノやコトについて掲載をしていくサイトです。

主にパソコン関係やアニメ・ゲーム等について掲載すたいと思いますので、 どうぞ宜しくお願い致します!

コメント等はTwitter等を活用して頂けると有り難いです!!

Twitter: ロト君@lotokunn