高品質の画像は、画像の数によってwebページにロードするのに時間がかかります。
アップロード時に複数のサイズの画像ファイルを作成し、必要に応じて低品質の画像と高品質の画像を使用することができます。
画像サイズを小さくすると、画質も低下します。
これの最良の例は、画像ファイルがアップロードされるたびに、それは別のファイルの異なるサイズを生成します、ワードプレスです。 これらの画像は、要件に応じてテーマで使用されます。
このチュートリアルでは、PHPでアップロード中に画像サイズを圧縮する方法を示します。PHPでアップロード中に画像サイズを圧縮する方法
コンテンツ
- HTML
- PHP
- まとめ
1. HTML
<form>
に<input type='file'>
要素を作成し、送信ボタンを押します。
完成コード
<form method='post' action='' enctype='multipart/form-data'> <input type='file' name='imagefile' > <input type='submit' value='Upload' name='upload'> </form>
2. PHP
画像ファイルを格納するimages
ディレクトリを作成します。
カスタム関数
JPEG、PNG、およびGIF画像を圧縮するcompressImage()
関数を作成します。
関数は3つのパラメータを取ります–
1。 ソース
2. デスティネーション
3. ファイル品質
imagecreatefromjpeg($source)
、imagecreatefromgif($source)
、imagecreatefrompng($source)
を呼び出して、$info
の値に従って新しいイメージを作成します。
imagejpeg()
メソッドを実行して、画像を保存先に保存します。 ここで、第三のパラメータquality
はオプションです。 これは0–100の値をとり、デフォルト値は75です。
フォーム送信
場所をimages
ディレクトリに設定し、ファイル拡張子を確認します。 有効な場合は、compressImage()
関数を呼び出し、$_FILES
、$location
、および60
を渡します。
完成コード
<?phpif(isset($_POST)){ // Getting file name $filename = $_FILES; // Valid extension $valid_ext = array('png','jpeg','jpg'); // Location $location = "images/".$filename; // file extension $file_extension = pathinfo($location, PATHINFO_EXTENSION); $file_extension = strtolower($file_extension); // Check extension if(in_array($file_extension,$valid_ext)){ // Compress Image compressImage($_FILES,$location,60); }else{ echo "Invalid file type."; }}// Compress imagefunction compressImage($source, $destination, $quality) { $info = getimagesize($source); if ($info == 'image/jpeg') $image = imagecreatefromjpeg($source); elseif ($info == 'image/gif') $image = imagecreatefromgif($source); elseif ($info == 'image/png') $image = imagecreatefrompng($source); imagejpeg($image, $destination, $quality);}?>
3. 結論
この例では、元のサイズの画像ではなく、圧縮された画像のみを保存しました。 アップロード中に両方のバージョンの画像を保存できます。
サイズを小さくするときに画質を調整します。
このチュートリアルが参考になった場合は、共有することを忘れないでください。