Как преобразовать формат изображения webP в обычный? php

У меня есть приложение для iOS и Android. иногда пользователи загружают изображение webP на мой сервер. проблема в том, что ios не может показать это изображение, когда оно загружено с моего сервера.

поэтому я хочу проверить в своем php-коде. если изображение в формате webP. затем я конвертирую его в формат png.

Как я могу сделать это с помощью php?


person david    schedule 30.06.2015    source источник
comment
imagemagick может обрабатывать формат изображения webp...   -  person n00dl3    schedule 30.06.2015
comment
@JuniusRendel спасибо за ваш ответ. не могли бы вы написать предложенный код. отвечать .   -  person david    schedule 30.06.2015
comment
вы также должны взглянуть на здесь они объясняют, как конвертировать в png в единая командная строка со своей libwebp библиотекой   -  person n00dl3    schedule 30.06.2015


Ответы (2)


Используя libwebp: (я предполагаю, что $file является абсолютным путь и libwebp установлен)

$regex="/^(.*)(\.webp)$/";
if(preg_match($regex, $file)){
   $out=preg_replace($regex, "${1}.png", $file);
   exec("dwebp $file -o $out");
}

Не проверял, но должно работать...

person n00dl3    schedule 30.06.2015
comment
не предполагайте, что на веб-хостингах включена функция exec() - person Ramon Fincken; 18.07.2017

Уже поздно, но только ради этого. Это можно сделать только с помощью PHP. Без какого-либо внешнего инструмента.

Цитата из документации PHP.net:

<?php
// Load the WebP file
$im = imagecreatefromwebp('./example.webp');

// Convert it to a jpeg file with 100% quality
imagejpeg($im, './example.jpeg', 100);
imagedestroy($im);
?>

Поэтому я предполагаю, что вы можете использовать imagepng() вместо imagejpeg, как в примере.

person Usama Ejaz    schedule 11.03.2017