Как преобразовать изображение WebP в JPEG или PNG с помощью Laravel изображения вмешательства - PullRequest
0 голосов
/ 27 февраля 2019

Я занимаюсь разработкой приложения на Laravel Framework (PHP).Я хочу загрузить изображение, имеющее формат webp, а затем преобразовать его в формат изображения jpeg или png.После преобразования изображения я также хочу загрузить его в корзину S3.

1 Ответ

0 голосов
/ 27 февраля 2019

Во-первых, мы можем использовать библиотеку Intervention Image .У нас должна быть установлена ​​библиотека php 7 и gd.Я пишу команды для установки библиотеки gd и библиотеки webp ниже (для ubuntu):

sudo apt-get update
sudo apt-get install webp
sudo apt-get install php7.0-gd (check php version and then install accordingly)

теперь проверьте расширение файла, и если расширение - webp, выберите расширение выходного файла

$extension = $this->file->extension();

if($this->file->getMimeType() == 'image/webp'){
    $extension = 'png';
}
// Generate a random filename
$fileName = time() . '_' . strtolower(uniqid()) . '.' . $extension;

Теперь закодируйте изображение в нужный формат

if($this->file->getMimeType() == 'image/webp'){
    $image = $image->encode($extension);
}
$image = $image->stream();

Теперь загрузите изображение в корзину s3

Storage::disk('s3')->put($folderName . '/' . $fileName, $imageNormal->__toString());
...