我使用Intervention Image上传单个图片的两个版本(小型和大型)以显示在不同的页面上。
用户始终上传1000 x 1000像素的图像,原件用于单个产品产品页面,较小的版本用于“所有产品”页面。
这种方法很好,但正在缩小尺寸的图像质量很差。这是像素化的。
我正在使用Laravel 4.2。我的php版本是5.5.11。我正在我的本地主机上使用Xampp进行开发。我看了this question,我很确定GD已经安装好了。
是不是因为GD不如想象力好?因为我不能为我的生活似乎安装那件事......
编辑:这个是的问题!我终于设法让想象力工作并将其改为司机。高品质的图像。
这是我的路线,虽然我不认为这是问题所在:
$file = Input::file('photo');
$fileName = Input::get('name').'.'.$file->getClientOriginalExtension();
$fileName= str_replace(' ', '_', $fileName);
$destinationPath = 'productphotos/';
// upload new image
Image::make($file->getRealPath())
// original
->save($destinationPath.$fileName)
// resize
->resize(300, 300) // set true if you want proportional image resize
->save($destinationPath.'resize'.$fileName, 100);
$aDetails = Input::all();
$aDetails["photo"] = $fileName;
$aDetails["smallphoto"] = 'resize'.$fileName;
Product::create($aDetails);
return Redirect::to("products/".Input::get("product_id"));
您可以看到库存测试(原始大小1000x1000)和testresize(300x300)之间的差异。它们都以218x218显示。
答案 0 :(得分:1)
我终于设法让想象力工作并将其改为司机。高品质的图像。 GD驱动程序是问题,解决方案是改变想象驱动程序。 干杯!