I have a question about Imagine component. Several days ago I had been installed It and I use It with the laravel 5. Everything looks good, but I have a trouble with a quality options. It looks like this settings are not working when I had been trying to apply It in my code. No errors, warnings or notices, but when I had been trying to apply different values nothing has been changed in the images quality :( my code looks like:
$imagine = new Imagine();
$options = [
//'resolution-units' => ImageInterface::RESOLUTION_PIXELSPERINCH,
//'resolution-x' => 300,
//'resolution-y' => 300,
'jpeg_quality' => 100,
];
$image = $imagine->open($image->getRealPath());
$size = $image->getSize();
$width = $size->getWidth();
$height = $size->getHeight();
$aspect_ratio = $width / $height;
$height_in_percent = round((230 * 100) / $height); //округлить (считаем новую высоту, 230px, в процентах от оригинальной)
$new_width = round(($width * $height_in_percent) / 100); //высчитываем пропорциональную оригинальной новую ширину
if(!isset($input['original'])) {
//$aspect_ratio >= 1.3 ? $a = '1' : $a = '0';
if($aspect_ratio < 1.33) return Redirect::intended($pass)->with('message', 'Пожалуйста, выберите изображение панорамной ориентации (ширина больше, чем высота и соотношение сторон больше или равно 1.33 (aspect ratio))');
/*$aspect_ratio >= 1.33 ? $img = $img->resize(null, 230, function ($constraint) { //сравниваем AR загружаемого изображения с AR (1.3) выходного изображения, если >= 1.3, то подгоняем по высоте, а потом кропим ширину, иначе - наоборот
$constraint->aspectRatio(); //автоподгонка по высоте
$constraint->upsize(); //предотвращение возможного увеличения изображения
}) : $img = $img->resize(300, null, function ($constraint) {
$constraint->aspectRatio(); //автоподгонка по высоте
$constraint->upsize(); //предотвращение возможного увеличения изображения
});
$img->crop(300, 230); //кропим изображение*/
$image = $image->resize(new Box($new_width, 230))
//->rotate(45)
->crop(new Point(0, 0), new Box(300, 230));
}
//$img->save('public/' . $image_filename, 90); //rezise изображения починить, ошибка записи в папку
//$img->save($image_filename, 90); //rezise изображения починить, ошибка записи в папку
$image->save('images/' . $image_filename, $options);
This morning I had been found a solution which is working as I think. I had been looking in the
private function saveOrOutput
in the imagine/imagine/lib/imagine/Gd/Imagine.php and It looks like there is no 'jpeg_quality' in the $options array, there is 'quality' options exists. So I had been changed It and It's working.
Does anybody working with this component? Is my thoughts correct?
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire