PHP 图片上传时的大小调整

Sheeraz Gul 2023年1月30日 2022年5月13日
  1. 使用 PHP gd 库在上传时调整图像大小
  2. 在 PHP 中使用 verot.net 库调整图像大小
  3. 结论
PHP 图片上传时的大小调整

在 PHP 中,我们可以在上传时调整图像大小。PHP 有一个内置库 gd 来执行图像操作;我们可以创建函数来调整上传图像的大小。

本教程演示了在 PHP 中调整图像大小的不同方法。

使用 PHP gd 库在上传时调整图像大小

PHP 有一个 gd 库来对图像执行操作。打开你的 php.ini 文件并执行以下操作:

;extension=php_gd2.dll

php.ini 中搜索 gd 并删除评论 ; 在 PHP 8 中,它是 gd,而 PHP 8 之前的版本是 gd2

extension=php_gd2.dll

重新启动服务器,一切顺利。

上传图片并调整大小的示例:

test.php

<!DOCTYPE html>
<html>
<head>
    <title>PHP Resize Image On upload</title>
</head>
<body>
<div>

    <form action="action.php" method="post" enctype="multipart/form-data">
        <input type="file" name="uploadimage" /> 
		<br><br>
        <input type="submit" name="upload" value="Upload" />
    </form>

</div>
</body>
</html>

action.php

<?php
if(isset($_POST["upload"])) {
    if(is_array($_FILES)) {
        $uploaded_file = $_FILES['uploadimage']['tmp_name']; 
        $upl_img_properties = getimagesize($uploaded_file);
        $file_name_id= rand(10,100);
		$new_file_name = "Resized Image_".$file_name_id;
        $folder_path = "upload/";
        $img_ext = pathinfo($_FILES['uploadimage']['name'], PATHINFO_EXTENSION);
        $image_type = $upl_img_properties[2];

        switch ($image_type) {
			//for PNG Image
            case IMAGETYPE_PNG:
                $image_type_id = imagecreatefrompng($uploaded_file); 
                $target_layer = image_resize($image_type_id, $upl_img_properties[0], $upl_img_properties[1]);
                imagepng($target_layer, $folder_path. $new_file_name. ".". $img_ext);
                break;
            //for GIF Image
            case IMAGETYPE_GIF:
                $image_type_id = imagecreatefromgif($uploaded_file); 
                $target_layer = image_resize($image_type_id, $upl_img_properties[0], $upl_img_properties[1]);
                imagegif($target_layer, $folder_path. $new_file_name.".". $img_ext);
                break;
            //for JPEG Image
            case IMAGETYPE_JPEG:
                $image_type_id = imagecreatefromjpeg($uploaded_file); 
                $target_layer = image_resize($image_type_id, $upl_img_properties[0], $upl_img_properties[1]);
                imagejpeg($target_layer, $folder_path. $new_file_name.".". $img_ext);
                break;

            default:
                echo "Please select a 'PNG', 'GIF'or JPEG image";
                exit;
                break;

        }

        //for the record move the uploaded file to the resized image directory
        move_uploaded_file($uploaded_file, $folder_path. "Original Uploaded Image_".$file_name_id.".". $img_ext);
        echo "Image is resized according to given Width and Height";
    }
}

function image_resize($image_type_id, $img_width, $img_height) {

    $target_width =1000;
    $target_height =1000;
    $target_layer= imagecreatetruecolor($target_width, $target_height);
    imagecopyresampled($target_layer, $image_type_id,0,0,0,0, $target_width, $target_height, $img_width, $img_height);
    return $target_layer;
}
?>

我们可以上传一张图片 PNG, GIF, JPEG 并使用上面的代码调整它的大小。

输出:

使用 PHP 调整图像大小

在 PHP 中使用 verot.net 库调整图像大小

verot.net 为 PHP 图像操作提供了一个库。Verot 库使图片上传操作变得简单,并提供了不同的图片上传方式。

首先,从 Verot class.upload.php 下载库。我们下载了 zip 文件。在根目录中提取 zip 文件。

将有两个文件夹,srctestsrc 包含所有源代码,test 包含上传和处理上传图像的代码。

打开测试文件夹并运行 index.html

PHP 中的 Verot 图像大小调整

在索引页面上,有很多选项。

如果要调整图像大小,请转到图像本地操作。输入你的图像名称并按处理

输出:

PHP 中的 Verot 图像处理

结论

正如我们所看到的,verot 处理了许多不同大小的图像,并将图像保存在 tmp 目录中。

测试文件夹中的 upload.php 正在执行所有这些操作。我们可以将 upload.php 中的代码用于任何特定活动。

Author: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

相关文章 - PHP Image