我试图重新保存一个已经创建的JPEG作为一个进步的jpg。
基本上,在前端,我有一些JS,它可以裁剪图像,并输出base64图像。一旦将它传递给PHP脚本,我就会将它创建为一个普通的JPEG文件,如下所示:
$largeTEMP = explode(',', $_POST['large']);
$large = base64_decode($largeTEMP[1]);
file_put_contents('../../images/shows/'.$dirName.'/large.jpg', $large);我希望这个jpg图像是渐进的,所以我环顾四周,发现了imageinterlace函数;但是,我似乎无法让它工作。我尝试过不同的组合,但我觉得由于某种原因,我的做法是错误的。
因此,我的问题是,如何使用已经生成的JPEG并将其转换为使用PHP的渐进性?或者,更好的是,在我保存它之前,先把它转换成一个渐进的JPEG。
发布于 2017-01-19 02:38:34
用imagecreatefromstring创建图像资源
$data = base64_decode($data);
$im = imagecreatefromstring($data);
if ($im === false) {
die("imagecreatefromstring failed");
}
imageinterlace($im, true);
imagejpeg($im, 'new.jpg');
imagedestroy($im);发布于 2019-08-04 16:55:48
使用图像交错。
$src_img = imagecreatefromjpeg('source.jpg');
imageinterlace($src_img, true);
imagejpeg($src_img, 'destination.jpg');
imagedestroy($src_img);发布于 2017-01-19 02:38:12
尝试Imagick (ImageMagic包),如下面所示:http://php.net/manual/en/imagick.setinterlacescheme.php
$image = new Imagick('image.jpg');
$image->thumbnailImage(500, 0);
$image->setInterlaceScheme(Imagick::INTERLACE_PLANE);
$image->writeImage('progressive.jpg');https://stackoverflow.com/questions/41732652
复制相似问题