ホームページ  >  記事  >  バックエンド開発  >  PHP は画像のアップロードとトリミング機能を実装します

PHP は画像のアップロードとトリミング機能を実装します

WBOY
WBOYオリジナル
2023-06-23 09:31:351733ブラウズ

PHP は、一般的に使用されるバックエンド プログラミング言語として、Web サイト開発の分野で広く使用されています。その中でも、画像のアップロードとトリミングは、Webサイト開発でよく使用される機能の1つです。 PHPを使用して画像アップロード機能やトリミング機能を実装する方法を紹介します。

1. 画像アップロード機能

まずは画像アップロード機能の実装について紹介します。次のコードは、単純な画像アップロード関数を実装しています。

<html>
    <head>
        <meta charset="UTF-8">
        <title>图片上传</title>
    </head>
    <body>
        <form action="upload.php" method="post" enctype="multipart/form-data">
            <input type="file" name="file">
            <input type="submit" value="上传">
        </form>
    </body>
</html>

このページにはフォームがあり、フォームの action 属性は、u​​pload.php という名前の処理スクリプトを指します。バイナリ ファイルをアップロードする前に、フォームの enctype 属性を「multipart/form-data」に設定する必要があります。ここでは簡単なフォームが提供されており、必要に応じて変更できます。

以下は、upload.php の処理スクリプトです。

<?php
// 指定文件上传的目录
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["file"]["name"]);

// 获取文件类型
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// 检查文件是否是图片
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["file"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}

// 如果文件已经存在,提示并退出
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}

// 检查文件大小
if ($_FILES["file"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}

// 允许上传的图片类型
if($imageFileType != "jpg" && $imageFileType != "jpeg" && $imageFileType != "png" && $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}

// 如果没有错误,进行文件上传
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
} else {
    if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["file"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>

このスクリプトは、アップロードされたファイルの処理対象パスとファイルの種類を取得し、次にファイルの種類とファイル サイズを確認します。ファイルの種類とサイズが標準を満たしている場合、ファイルはアップロードされます。そうでない場合は、エラー メッセージが表示されます。

2. 画像トリミング機能

画像トリミング機能とは、画像をアップロードした後、画像のサイズや比率などを要件を満たすようにトリミングすることを指します。ここでは、PHP を使用して画像のトリミング機能を実装する方法について説明します。この記事では、PHP ライブラリ - GD ライブラリを使用して画像を処理します。

  1. GD ライブラリのインストール

GD ライブラリを使用する前に、ライブラリがインストールされていることを確認する必要があります。そうでない場合は、インストールする必要があります。 Linux システムでは、次のコマンドを使用して GD ライブラリをインストールできます。

sudo apt-get install php7.2-gd

Windows システムでは、php 構成ファイル php.ini で次のステートメントを見つけます。

;extension=php_gd2.dll

これを次のように変更します。

extension=php_gd2.dll

phpを保存して再起動します。

  1. 写真のトリミング

GD ライブラリを使用する前に、プログラムに写真を読み込む必要があります。 Imagecreatefromjpeg()、Imagecreatefrompng()、Imagecreatefromgif() などの関数を使用して、さまざまな形式の画像をロードできます。以下は単純なトリミング プログラムです。

//载入原图
$src = imagecreatefromjpeg('test.jpg');

//裁剪原图
$dst = imagecreatetruecolor(100, 100);
imagecopyresampled($dst, $src, 0, 0, 50, 50, 100, 100, 100, 100);

//保存裁剪后的图片
imagejpeg($dst, 'test_crop.jpg');

//释放原图和裁剪后的图片
imagedestroy($src);
imagedestroy($dst);

このプログラムは、画像処理関数 imagecreatetruecolor() を使用して空白の画像を生成し、次に imagecopyresampled() 関数を使用して元の画像をトリミングして空白の画像にコピーします。 。最後に、imagejpeg() 関数を使用して、トリミングされた画像を保存します。

3. 概要

PHP では、アップロード フォームと GD ライブラリを使用して、画像を簡単にアップロードして切り抜くことができます。この機能は Web サイト開発でよく使われる機能で、画像のアップロードとトリミングの基本的なスキルをマスターすることは、Web サイト開発が初めての学生にとっては計り知れない助けとなります。

以上がPHP は画像のアップロードとトリミング機能を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。