当图像大于 3000 像素时,调整图像大小而不会降低质量


Resize image without lose quality when image is bigger then 3000px

我有脚本来调整上传图像的大小而不会降低质量,但是当它的宽度/高度超过3000像素时,它不会调整大小。我尝试在 httaccess 中设置值,但没有任何变化。

这是脚本:

$filename = "image.jpg";
    // Set a maximum height and width
    $width = 490;
    $height = 800;
    header('Content-Type: image/jpeg');
    list($width_orig, $height_orig) = getimagesize($filename);
    $ratio_orig = $width_orig / $height_orig;
    if ($width / $height > $ratio_orig) {
        $width = $height * $ratio_orig;
    } else {
        $height = $width / $ratio_orig;
    }
    // Resample
    $image_p = imagecreatetruecolor($width, $height);
    $image = imagecreatefromjpeg($filename);
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
    // Output
    imagejpeg($image_p, "image_resized.jpg", 100);



和 .htacces 我试过:

php_value memory_limit 24M
php_value upload_max_filesize 10M  
php_value post_max_size 10M  
php_value max_input_time 300  
php_value max_execution_time 300 

在重新采样图像中使用@

// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = @imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

经过测试的解决方案。