Как получить количество изображений с помощью драйвера Imagick на laravel 5

Раньше я получал количество изображений из файла (.tiff или .tif) с помощью Imagick.

$document = new Imagick();
$document->readImage($path);
$pages = $document->getNumberImages();

Теперь, когда я использую laravel для своих проектов, я не могу использовать тот же метод в контроллере. Мне пришлось установить образ вмешательства драйвера и изменить драйвер на imagick. Кто-нибудь знает, какой должна быть команда для получения количества изображений? Я искал везде и не повезло.


person JCD    schedule 04.02.2016    source источник


Ответы (1)


Функция getCore позволит вам получить доступ к базовому экземпляру Imagick/GD.

$img = Image::make('public/foo.jpg');
$imagick = $img->getCore();
$imagick->getNumberImages();
person ceejayoz    schedule 04.02.2016
comment
Он почти работает нормально, но по какой-то причине он дает мне количество изображений = 1, когда в файле 40 изображений. Вы знаете, почему оно это делает? - person JCD; 04.02.2016
comment
@JCD Нет. Я хотел бы отметить, что вы можете использовать Imagick непосредственно в контроллерах Laravel, если хотите. - person ceejayoz; 04.02.2016
comment
Не могли бы вы? когда я пытаюсь использовать imagick непосредственно в контроллере, он говорит это Class 'App\Http\Controllers\Imagick' not found - person JCD; 04.02.2016
comment
Вам действительно захочется прочитать php.net/manual/en/language.namespaces .php, если вы работаете в Laravel. Добавьте \ перед ним (т.е. $document = new \Imagick();) или добавьте оператор use Imagick; вверху вашего контроллера (вне определения класса). Вы увидите, что это активно используется в Laravel. - person ceejayoz; 04.02.2016
comment
О, теперь работает. Я добавил \ перед Imagick() раньше, и это не сработало; но это потому, что в тот момент у меня еще не был включен/установлен imagick. Упс... Большое спасибо, чувак! Я все еще попытаюсь выяснить, почему он дал мне 1 другим методом. Спасибо еще раз ! - person JCD; 04.02.2016