我发现图像可以压缩一定比例。例如:
$compressed_img = compress($source_img, $destination_img, 90);
在这种情况下,$source_img
的大小将减少到原始大小的90%。
如果原始大小为$source_img
100kb,则$compressed_img
的大小为90kb。
我一直在尝试做的是确定是否根据原始大小压缩目标文件,并确定将按字节减少多少大小。
例如,如果您需要确保所有上传的文件都低于200kb ,如果上传的尺寸已经轻于,则不能更改尺寸?
这是伪代码。
if($source > 200kb){
$compressed = compressByByte($source, 200kb);
}//Again, this is a sude code!
由于源文件的大小不同,使用compress()
函数是不切实际的。
任何建议将不胜感激。 (我在Laravel 5.2中使用php)
答案 0 :(得分:0)
我认为你从错误的假设开始,当你压缩图像时你可以指定压缩因子,但这并不意味着输出是原始大小的90%,它很大程度上取决于图像的内容,有些图像可以更好地压缩其他图像(单色图像可以比普通照片小)。
那说你能做的就是
请记住,增加JPEG中的压缩会降低图像的质量,如果压缩过高,您会开始在图像中看到低难度的错误,通常我们不会在85下使用压缩。