OctoberCMS: обрезка исходного изображения при загрузке


Задается следующий код:

$car= new Car();
$car->name = Input::get('name');
$car->photo = Input::file('photo');
$car->save();

Мне нужно обрезать фотографию (со смещением) перед ее сохранением. Я попытался использовать плагин ImageResizer , но не смог понять, как интегрировать его API с вышеуказанным кодом. Любой совет будет оценен по достоинству.

1 3

1 ответ:

Да, вы можете resize image использовать это plugin, но вам это даже не нужно, так как внутренне он также использует OctoberCMS built-in Resize function.

Сначала вам нужно сохранить его на диске, а затем изменить его размер на месте.

Для этого вы можете использовать встроенную Cms October Resizer https://octobercms.com/docs/api/october/rain/database/attach/resizer

Вы также можете обрезать изображение, если вам нужно просто прочитать https://octobercms.com/docs/api/october/rain/database/attach/resizer#crop док и вы хорошо идете. есть гораздо больше вариантов, если вам нужно.

<?php namespace hardiksatasiya/...somethig;

use October\Rain\Database\Attach\Resizer;

// ...

$car= new Car();
$car->name = Input::get('name');
$car->photo = Input::file('photo');
$car->save();

// code to resize image
$width = 100;
$height = 100;
$options = []; // or ['mode' => 'crop']

Resizer::open($car->photo->getLocalPath()) // create from real path
          ->resize($width, $height, $options)
          ->save($car->photo->getLocalPath());

Этот код откроет сохраненное изображение, изменит его размер и сохранит его в том же месте.

Если у вас возникнут какие-либо проблемы, пожалуйста, прокомментируйте.