首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中将JPEG转换为渐进JPEG

在PHP中将JPEG转换为渐进JPEG
EN

Stack Overflow用户
提问于 2017-01-19 02:16:29
回答 3查看 6.4K关注 0票数 6

我试图重新保存一个已经创建的JPEG作为一个进步的jpg。

基本上,在前端,我有一些JS,它可以裁剪图像,并输出base64图像。一旦将它传递给PHP脚本,我就会将它创建为一个普通的JPEG文件,如下所示:

代码语言:javascript
复制
$largeTEMP = explode(',', $_POST['large']);
$large = base64_decode($largeTEMP[1]);
file_put_contents('../../images/shows/'.$dirName.'/large.jpg', $large);

我希望这个jpg图像是渐进的,所以我环顾四周,发现了imageinterlace函数;但是,我似乎无法让它工作。我尝试过不同的组合,但我觉得由于某种原因,我的做法是错误的。

因此,我的问题是,如何使用已经生成的JPEG并将其转换为使用PHP的渐进性?或者,更好的是,在我保存它之前,先把它转换成一个渐进的JPEG。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-19 02:38:34

imagecreatefromstring创建图像资源

代码语言:javascript
复制
$data = base64_decode($data);
$im = imagecreatefromstring($data);
if ($im === false) {
  die("imagecreatefromstring failed");
}
imageinterlace($im, true);
imagejpeg($im, 'new.jpg');
imagedestroy($im);
票数 9
EN

Stack Overflow用户

发布于 2019-08-04 16:55:48

使用图像交错

代码语言:javascript
复制
$src_img = imagecreatefromjpeg('source.jpg');

imageinterlace($src_img, true);

imagejpeg($src_img, 'destination.jpg');

imagedestroy($src_img);
票数 2
EN

Stack Overflow用户

发布于 2017-01-19 02:38:12

尝试Imagick (ImageMagic包),如下面所示:http://php.net/manual/en/imagick.setinterlacescheme.php

代码语言:javascript
复制
$image = new Imagick('image.jpg');

$image->thumbnailImage(500, 0);

$image->setInterlaceScheme(Imagick::INTERLACE_PLANE);

$image->writeImage('progressive.jpg');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41732652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档