我正在尝试将已经创建的 JPEG 重新保存为渐进式jpg。
基本上,在前端,我有一些 JS 可以裁剪图像,并输出 base64 图像 JPEG。将它传递给 PHP 脚本后,我将其创建为常规 JPEG 文件,如下所示:
$largeTEMP = explode(',', $_POST['large']);
$large = base64_decode($largeTEMP[1]);
file_put_contents('../../images/shows/'.$dirName.'/large.jpg', $large);
Run Code Online (Sandbox Code Playgroud)
我希望这个 jpg 图像是渐进式的,所以我环顾四周并找到了 PHP 函数imageinterlace;但是,我似乎无法让它发挥作用。我尝试了各种组合,但我觉得由于某种原因我以错误的方式处理这个问题。
所以我的问题是,如何使用 PHP 将我已经生成的 JPEG 转换为渐进式?或者,更好的是,在我什至首先保存它之前,将其转换为渐进式 JPEG。
使用以下命令创建图像资源imagecreatefromstring:
$data = base64_decode($data);
$im = imagecreatefromstring($data);
if ($im === false) {
die("imagecreatefromstring failed");
}
imageinterlace($im, true);
imagejpeg($im, 'new.jpg');
imagedestroy($im);
Run Code Online (Sandbox Code Playgroud)