【发布时间】:2021-08-14 23:33:10
【问题描述】:
我正在使用file_put_contents() 将图像存储在目录中。但是,图像尺寸太大。我想将图像大小从 mb 压缩到 kb 以改善我的 Web 应用程序。但是,我不确定是否可以将imagejpeg() 函数与file_put_contents() 一起使用。只是通知一下,我正在使用Croppie.js,并且图像正在通过 AJAX 传输到单独的文件进行处理。
PHP
$image_array_1 = explode(";", $image);
$image_array_2 = explode(",", $image_array_1[1]);
$image = base64_decode($image_array_2[1]);
$imageName = $user['id'][0] . "_" . time() . '.jpg';
$dir = "../images/users/".$user['id'][0]."/"."avatar/";
$imageDirectory = $dir.$imageName;
如果我上传1 mb 大小的图像,它的大小将变为6-7 mb。而不是减小它,而是将大小乘以 6-7 倍。我希望它低于50-100 kb。有什么办法可以压缩这里的大小吗?
【问题讨论】:
-
看看这里如何使用 PHP 缩小图像:stackoverflow.com/questions/14649645/resize-image-in-php
-
"如果我上传 1 mb 大小的图像,它会变成 6-7 mb。"这是没有意义的。文件不会“变大”,除非你让它们变大。
-
@miken32 我知道,但请告诉我在上面的代码中你能看到我“强迫”它变大的地方吗?我不在乎这是否有意义。这就是这里发生的事情。我已经测试了所有回合。检查上传图像的大小之前和之后,并说出我发现的结果。无论如何,你对我的问题有解决方案吗?
-
图片尺寸增加可能是由于
Croppie.js。见这里github.com/Foliotek/Croppie/issues/287 -
@cOle2 对.. 我知道.. 所以我想在服务器端处理期间压缩它并减小它的大小。我找到的压缩解决方案是根据使用
$_FILES方法的直接PHP上传。但是,这里我是使用 AJAX 上传的,处理方法与平时不同。任何与问题中我的代码相关的解决方案?
标签: php image image-processing file-upload image-resizing