ホームページ >バックエンド開発 >PHPチュートリアル >PHPを使用した画像ファイルの処理とアップロード
インターネットの継続的な発展に伴い、Web サイトで画像ファイルを使用することがますます一般的になってきています。 Web サイトを開発する場合、多くの場合、ユーザーが画像ファイルをアップロードして処理できるようにする必要があります。このため、開発者は PHP を使用して画像ファイルを処理およびアップロードする方法に精通している必要があります。
1. 画像ファイルのアップロード
PHP では、$_FILES を使用してアップロードされたファイルを取得できます。アップロードされた画像ファイルを処理するには、次の手順が必要です。
まず、ファイルをアップロードするディレクトリを決定する必要があります。 $_FILES "file" を設定することで、アップロードされたファイルの一時パスを取得できます。
次に、アップロードするファイルの種類を設定する必要があります。通常、jpg および png 形式の画像ファイルのアップロードのみが許可されます。これは、次のコードを使用して設定できます:
$allowed = array('jpg', 'png');
if( ! in_array(strto lower(pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION)), $allowed)){
echo "アップロードできるのは、jpg および png 形式の画像ファイルのみです";
exit( );
}
アップロード ファイルの処理には、主に 2 つの状況があります。アップロードされたファイルを指定されたディレクトリに移動することです。圧縮して調整します。これら 2 つの状況を以下に紹介します。
最初の状況: アップロードされたファイルを指定されたディレクトリに移動します。以下はサンプル コードです:
$target_dir = "uploads/";
$target_file = $target_dir .basename($_FILES"file");
if (move_uploaded_file($_FILES[" file "]["tmp_name"], $target_file)) {
echo "ファイルのアップロードに成功しました";
} else {
echo "ファイルのアップロードに失敗しました";
}
2 つの状況: アップロードされたファイルの圧縮と調整は、PHP の GD ライブラリを使用して実現できます。以下はサンプルコードです:
$src_image = imagecreatefromjpeg($_FILES"file"); // 元の画像を設定します
$dst_image = imagescale($src_image, 300); // ターゲットを設定しますimage Size
imagepng($dst_image, 'new_image.png'); //出力対象画像
上記のコードは、アップロードされたjpg画像ファイルをpng形式に変換し、幅のある画像に調整します。 300ピクセルのドキュメント。
2. 画像ファイルの処理
ファイルが正常にアップロードされたら、画像ファイルの処理を開始できます。画像ファイルを処理するいくつかの方法を次に示します。
imagecrop() 関数を使用して画像をトリミングできます。以下はサンプル コードです:
$src_image = imagecreatefrompng ('image.png '); // 元の画像を設定します
$dst_image = imagecrop($src_image, ['x' => 100, 'y' => 100, 'width' => 200, 'height' => ; 200]); // ターゲット画像を設定します
imagepng($dst_image, 'cropped_image.png'); // ターゲット画像を出力します
上記のコードは画像をトリミングします.png 画像ファイルを 200x200 画像に変換し、cropped_image.png ファイルとして出力します。
$watermark = imagecreatefrompng('watermark.png'); // ウォーターマークを設定します
imagecopymerge($src_image, $watermark, 10, 10, 0 , 0, imagex($watermark), imagesy($watermark), 30); // 元の画像にウォーターマークを追加します
imagettftext($src_image, 30, 0, 200, 200, imagecolorallocate($) src_image, 255, 255 , 255), 'font.ttf', 'My Watermark'); // テキストの透かしを追加します
imagepng($src_image, 'watermarked_image.png'); // 透かし入りの画像を出力します
imagefilter($src_image, IMG_FILTER_GRAYSCALE); // 画像をグレースケールに変換します
imagepng($src_image, 'grayscale_image.png'); // グレー度画像を出力します。
以上がPHPを使用した画像ファイルの処理とアップロードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。