Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-如何将用户上传的图像压缩到特定大小_Php_Image - Fatal编程技术网

PHP-如何将用户上传的图像压缩到特定大小

PHP-如何将用户上传的图像压缩到特定大小,php,image,Php,Image,我有一个网站,用户可以上传他们的个人资料图像。由于我们的资源有限,图像需要小于一定的大小。不过,我不想强迫用户上传的图像只有在该大小。我想知道在php中是否可以将任何大小的图像压缩到特定的大小。 看看其他SA问题,似乎唯一相似的是: imagejpeg($tn, $save, 75); 然而,如果一个图像很大,它仍然只能压缩到75%,而一个非常小的图像将失去更多的质量 所以我的问题是:是否可以将任意大小的图像压缩到另一个特定大小? 任何帮助都将不胜感激。谢谢 你有没有看到我使用phpThum

我有一个网站,用户可以上传他们的个人资料图像。由于我们的资源有限,图像需要小于一定的大小。不过,我不想强迫用户上传的图像只有在该大小。我想知道在php中是否可以将任何大小的图像压缩到特定的大小。 看看其他SA问题,似乎唯一相似的是:

imagejpeg($tn, $save, 75); 
然而,如果一个图像很大,它仍然只能压缩到75%,而一个非常小的图像将失去更多的质量

所以我的问题是:是否可以将任意大小的图像压缩到另一个特定大小?

任何帮助都将不胜感激。谢谢

你有没有看到

我使用phpThumb正是为了这个目的-

使用此选项的优点是,您可以指定控制图像输出方式的参数,例如:

w:图像的宽度

h:图像的高度

zc:放大图像的中心

far:力纵横比

iar:忽略纵横比


您可以只指定
w
,然后在保持纵横比的同时自动计算高度。您可以在

处查看所有参数,而不是压缩,您可以尝试将其图像大小调整为设定的大小吗?也就是说,如果他们尝试上传一个500x500的图像,你会将其调整为80x80。看一看。我希望这会有帮助。你可以设置图像的最大宽度/高度;保持纵横比,并对其进行优化以节省资源。陈大卫的建议是恰当的。您还可以看到另一个关于图像最大大小的问题:然后您可以通过一些分割来计算正确的纵横比。但是,我建议只缩放到一个设定值。如果您开始关注相同的纵横比,则有人可以上传1x5000或5000x1的图像。如果它是一个个人资料头像,它应该为每个人都标准化。哦,对了。但是文件大小会减小吗?
include("phpthumb.class.php");  

$image_destination = '/path/to/destination/file.jpg';

$phpThumb = new phpThumb();

$phpThumb->setSourceFilename($_FILES['file']['tmp_name']);
$phpThumb->setParameter('w', 400);
$phpThumb->setParameter('h', 400);      

$phpThumb->GenerateThumbnail();
$phpThumb->RenderToFile($image_destination);