首页 文章

PHP按比例调整图像大小宽度或重量[关闭]

提问于
浏览
17

有任何PHP脚本按比例调整图像大小widht或高?

例如:我上传图片,原始大小为w:500小时:1000 . 但是,我想要调整大小,即最大高度为宽度和高度为500 ...脚本调整图像大小为w:250小时:500

2 回答

  • 12

    您只需要宽高比 . 这些方面的东西:

    $fn = $_FILES['image']['tmp_name'];
    $size = getimagesize($fn);
    $ratio = $size[0]/$size[1]; // width/height
    if( $ratio > 1) {
        $width = 500;
        $height = 500/$ratio;
    }
    else {
        $width = 500*$ratio;
        $height = 500;
    }
    $src = imagecreatefromstring(file_get_contents($fn));
    $dst = imagecreatetruecolor($width,$height);
    imagecopyresampled($dst,$src,0,0,0,0,$width,$height,$size[0],$size[1]);
    imagedestroy($src);
    imagepng($dst,$target_filename_here); // adjust format as needed
    imagedestroy($dst);
    

    您需要添加一些错误检查,但这应该让您开始 .

  • 32

    使用Colin Verot编写的上传类 . 它有各种选项可用于调整大小,编辑,水印等......真棒!

    该课程由互联网上的网站维护和使用,因此您可以信赖它是可靠的!

    here

    Even though this is called the Upload Class, you can apply the same methods to files already on your server

    如何使用

    按照网站上的安装说明,简单地下载课程并将其放在您的网站上 .

    您的脚本将如下所示:

    // Include the upload class
    include('class.upload.php');
    
    // Initiate the upload object based on the uploaded file field
    $handle = new upload($_FILES['image_field']);
    
    // Only proceed if the file has been uploaded
    if($handle->uploaded) {
        // Set the new filename of the uploaded image
        $handle->file_new_name_body   = 'image_resized';
        // Make sure the image is resized
        $handle->image_resize         = true;
        // Set the width of the image
        $handle->image_x              = 100;
        // Ensure the height of the image is calculated based on ratio
        $handle->image_ratio_y        = true;
        // Process the image resize and save the uploaded file to the directory
        $handle->process('/home/user/files/');
        // Proceed if image processing completed sucessfully
        if($handle->processed) {
            // Your image has been resized and saved
            echo 'image resized';
            // Reset the properties of the upload object
            $handle->clean();
        }else{
            // Write the error to the screen
            echo 'error : ' . $handle->error;
        }
    }
    

相关问题