画像upload機能を作成しています。
upload自体はできたのですが、thumbnailに使用したいためresize機能を作成しています。
そこで、resizeはできるものの、gifをrisizeしたのち表示させると、gifが動かなくなります。
調べていますが、これといったものができません。どのようにしたら良いでしょうか。
下記がコードになります。
php
1//imgUpload1.php 2 3ini_set("display_errors", 1); 4error_reporting(E_ALL); 5 6require_once('imgUpload2.php'); 7 8$tmpfile = $_FILES['image']['tmp_name']; 9$filename = $_FILES['image']['name']; 10 11if(is_uploaded_file($tmpfile)){ 12 $uploader = uploader($tmpfile,$filename); 13 $file = '../img/thumbnail/' .$uploader; 14}else{ 15 16} 17?> 18 19<!DOCTYPE html> 20<html> 21<head> 22 <title>ImageUpload and Resize</title> 23</head> 24<body> 25 <h1>Image upload and resize screen</h1> 26 27 <form action="imgUpload1.php" method="post" enctype="multipart/form-data"> 28 <input id="file" type="file" name="image"> 29 <input id="btn" type="submit" value="アップロード"> 30 </form> 31 <img src="<?= $file?>"> 32</body> 33</html>
php
1//imgUpload2.php 2 3<?php 4ini_set("display_errors", 1); 5error_reporting(E_ALL); 6 7function uploader($tmpfile,$filename) 8{ 9 $sepExt = pathinfo($filename); 10 $getExt = $sepExt['extension']; 11 $baseName = date("Hms"); 12 $newFileName = $baseName ."." .$getExt; 13 $dir = '../img/thumbnail/'; 14 15 @rename($filename,$newFileName); 16 17 if(move_uploaded_file($tmpfile, $dir .$newFileName)){ 18 $resized = resize_image($dir,$getExt,$newFileName,150,150); 19 20 if($resized != false){ 21 return $newFileName = $baseName ."." .$getExt; 22 }else{ 23 $err = "エラー"; 24 return $err; 25 } 26 27 }else{ 28 $err = "エラー"; 29 return $err; 30 } 31 32 return false; 33} 34 35function resize_image($dir,$extend,$filename,$newW,$newH) 36{ 37 list($oldW,$oldH) = getimagesize($dir .$filename); 38 39 switch ($extend) { 40 case 'jpg': 41 $old_resource = imagecreatefromjpeg($dir .$filename); 42 break; 43 44 case 'png': 45 $old_resource = imagecreatefrompng($dir .$filename); 46 break; 47 48 case 'gif': 49 $old_resource = imagecreatefromgif($dir .$filename); 50 break; 51 } 52 53 $new_resource = imagecreatetruecolor($newW, $newH); 54 imagecopyresampled($new_resource, $old_resource, 0, 0, 0, 0, $newW, $newH, $oldW, $oldH); 55 56 switch ($extend) { 57 case 'jpg': 58 imagejpeg($new_resource,$dir .$filename); 59 return "jpg"; 60 break; 61 62 case 'png': 63 imagepng($new_resource,$dir .$filename); 64 return "png"; 65 break; 66 67 case 'gif': 68 imagegif($new_resource,$dir .$filename); 69 return "gif"; 70 break; 71 } 72 73 return false; 74} 75
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/01/10 08:28