【问题标题】:Laravel Image Intervention resize quality lossLaravel Image Intervention 调整大小质量损失
【发布时间】:2015-12-18 10:23:20
【问题描述】:

在我的 Laravel 网络应用程序中,我使用了Intervention Image library。我正在保存上传图片的三个版本:'original''500_auto' 和自定义尺寸图片。

$image = Image::make(Input::file('file');

// Save the orignal image
$image->save($folder . 'original.' . $extension);

// Save 500_auto image
$image->resize(500, null, function($constraint) {
    $constraint->aspectRatio();
});
$image->save($folder . '500_auto.' . $extension, 100);

// Check if size is set
if (isset($config->images->width) && isset($config->images->height)) {
    // Assign values
    $width  = $config->images->width;
    $height = $config->images->height;
    // Create the custom thumb
    $image->resize($width, $height, function($constraint) {
        $constraint->aspectRatio();
    });
    $image->save($folder . $width . '_' . $height . '.' . $extension, 100);
}

干预的驱动在配置中设置为'gd':

'driver' => 'gd'

这是我要上传的图片:original.jpg

这是自定义拇指的结果,其配置设置设置为与原始尺寸 (1800 x 586) 完全相同:1800_586.jpg

正如您看到的第二张图片,调整大小后的图片有很多质量损失。我该如何解决这个问题?

【问题讨论】:

    标签: image laravel image-resizing intervention


    【解决方案1】:

    您首先将图像大小调整为小格式,然后拍摄小图像并再次将其调整为原始大小。如果您颠倒顺序,您将从原始尺寸 -> 原始尺寸 -> 小尺寸改为。

    就个人而言,我通常更喜欢为每个新图像重做Image::make() 调用,以确保我不会在此过程中搞砸这样的事情。

    【讨论】:

    • 感谢您的帮助。非常合乎逻辑,它调整为小版本,然后调整为 1800x586。就像你提到的那样,我通过在每次调整大小之前调用 Image::make() 来更新方法。
    • 为每次调整大小创建新的Image::make() 的好方法。这就是导致 resize 函数中图像模糊的原因。
    【解决方案2】:

    您可以使用“backup()”方法保存对象的状态和“reset()”方法返回备份状态:

    // create an image
    $img = Image::make('public/foo.jpg');
    
    // backup status
    $img->backup();
    
    // perform some modifications
    $img->resize(320, 240);
    $img->invert();
    $img->save('public/small.jpg');
    
    // reset image (return to backup state)
    $img->reset();
    
    // perform other modifications
    $img->resize(640, 480);
    $img->invert();
    $img->save('public/large.jpg');
    

    此页面上的更多信息: http://image.intervention.io/api/reset

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-18
      • 2011-11-12
      相关资源
      最近更新 更多