如何将JPEG图像保存为渐进式JPEG?

3
我有以下函数可以将JPEG保存为渐进式JPEG。它已经被保存了,但不是渐进式JPEG。这样正确吗?
function save($filename, $image_type = IMAGETYPE_JPEG, $compression = 75, $permissions = null) {

    if ($image_type == IMAGETYPE_JPEG) {

        imageinterlace($this->image, true); //convert to progressive ?
        imagejpeg($this->image, $filename, $compression);

    } elseif ($image_type == IMAGETYPE_GIF) {

        imagegif($this->image, $filename);

    } elseif ($image_type == IMAGETYPE_PNG) {

        imagepng($this->image, $filename);
    }

    if ($permissions != null) {

        chmod($filename, $permissions);
    }
}

这是我调用save()函数的方式:
function img_reconstruct($saveto) {
  $image = new SimpleImage();

  $image->load($saveto);

  list($width, $height) = getimagesize($saveto);

  if ($width > 800 && $width < 1200) {

    $image->resize(800, $height);

    $image->save($saveto);

  }
 }

嗨 Snoke,你解决了这个问题吗?我也在寻找将 JPEG 转换为渐进式 JPEG。 - Suriyamoorthy Baskaran
一样的问题。不管你使用imageinterlace($this->image, true);还是imageinterlace($this->image, 1);,有什么想法为什么它可能无法工作? - Werner
JPEG格式只提供渐进式图像,为什么不是PNG格式图像?我有一个疑问,就是我看到所有的博客都只谈论渐进式JPEG,而没有任何PNG格式图像。有人能澄清一下吗? - Siluveru Kiran Kumar
1个回答

4

尝试以下操作:

imageinterlace($this->image, 1); //convert to progressive ?

可能存在类型转换问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接