Webp to jpg converter php

Convert WEBP to JPEG via PHP Cloud API

Transform WEBP into JPEG using native PHP Cloud APIs without needing any image editor or 3rd-party libraries.

Aspose.Imaging.Cloud for PHP

Overview

Download from NuGet

Open NuGet package manager, search for and install.
You may also use the following command from the Package Manager Console.

How to Convert WEBP to JPEG Using PHP Cloud API

Aspose.Imaging.Cloud for PHP API which is a feature-rich, powerful and easy to use image manipulation and conversion Cloud API for PHP platform. You can install its latest version from Packagist

composer.json fragment

  "require":   "aspose/aspose-imaging-cloud": ">=version of aspose-imaging-cloud API"  > > 

Steps to Convert WEBP to JPEG via PHP Cloud API

Developers can easily load & convert WEBP files to JPEG in just a few lines of code.

  • Load WEBP file as stream
  • Create & set the instance of CreateConvertedImageRequest
  • Call the CreateConvertedImage method
  • Get converted image from response stream

System Requirements

Aspose.Imaging Cloud for PHP is supported on all major operating systems. Just make sure that you have the following prerequisites.

Convert WEBP to JPEG — Cloud

About Aspose.Imaging Cloud API for PHP

Aspose.Imaging Cloud API is an image processing solution to process images (photos) within your cloud or web applications. It offers: cross-platform Image processing, including but not limited to conversions between various image formats (including uniform multi-page or multi-frame image processing), transformations (resize, crop, flip&rotate, grayscale, adjust), advanced image manipulation features (filtering, deskewing), AI features (i.e. object detection and reverse image search). It’s a Cloud API and does not depend on any software for image operations. One can easily add high-performance image conversion features with Cloud APIs within projects. Flexible integrations options including SDKs for various languages (Python, Ruby, .NET, Java, NodeJS, PHP) and the use of the REST API allow to make the integration easy.

Convert WEBPs via Online App

Convert WEBP to JPEG documents by visiting our Live Demos website. The live demo has the following benefits

WEBP What is WEBP File Format

WebP, introduced by Google, is a modern raster web image file format that is based on lossless and lossy compression. It provides same image quality while considerably reducing the image size. Since most of the web pages use images as effective representation of data, the use of WebP images in web pages results in faster loading of web pages. As per Google, WebP lossless images are 26% smaller in size compared to PNGs, while WebP lossy images are 25-34% smaller than comparable JPEG images. Images are compared based on the Structural Similarity (SSIM) index between WebP and other image file formats. WebP is a sister project of WebM multimedia container format.

JPEG What is JPEG File Format

A JPEG is a type of image format that is saved using the method of lossy compression. The output image, as result of compression, is a trade-off between storage size and image quality. Users can adjust the compression level to achieve the desired quality level while at the same time reduce the storage size. Image quality is negligibly affected if 10:1 compression is applied to the image. The higher the compression value, the higher the degradation in image quality.

Other Supported Conversions

Using PHP Cloud API, one can easily convert different formats including.

Источник

imagecreatefromwebp

imagecreatefromwebp() возвращает идентификатор изображения, представляющий изображение, полученное из переданного имени файла. Обратите внимание, что анимированные файлы WebP не читаются.

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen() . Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.

Список параметров

Возвращаемые значения

Возвращает объект изображения в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия Описание
8.0.0 В случае успешного выполнения функция теперь возвращает экземпляр GDImage ; ранее возвращался ресурс ( resource ).

Примеры

Пример #1 Конвертирование WebP-изображения к jpeg-изображению, используя imagecreatefromwebp()

// Загрузить WebP-файл
$im = imagecreatefromwebp ( ‘./example.webp’ );

// Сконвертировать его в jpeg-файл со 100%-качеством
imagejpeg ( $im , ‘./example.jpeg’ , 100 );
imagedestroy ( $im );
?>

User Contributed Notes 1 note

Normal WebP (VP8): supported since PHP 5.4
Transparent WebP or alpha transparency (VP8X, VP8L): supported since PHP 7.0
Animated WebP (VP8X): not supported at all.

Test with imagecreatefromwebp(‘your-image.webp’); and see the errors.

You can detect animated or transparent webp using this code.

/**
* Get WebP file info.
*
* @link https://www.php.net/manual/en/function.pack.php unpack format reference.
* @link https://developers.google.com/speed/webp/docs/riff_container WebP document.
* @param string $file
* @return array|false Return associative array if success, return `false` for otherwise.
*/
function webpinfo ( $file ) if (! is_file ( $file )) return false ;
> else $file = realpath ( $file );
>

$fp = fopen ( $file , ‘rb’ );
if (! $fp ) return false ;
>

$header_format = ‘A4Riff/’ . // get n string
‘I1Filesize/’ . // get integer (file size but not actual size)
‘A4Webp/’ . // get n string
‘A4Vp/’ . // get n string
‘A74Chunk’ ;
$header = unpack ( $header_format , $data );
unset( $data , $header_format );

if (!isset( $header [ ‘Riff’ ]) || strtoupper ( $header [ ‘Riff’ ]) !== ‘RIFF’ ) return false ;
>
if (!isset( $header [ ‘Webp’ ]) || strtoupper ( $header [ ‘Webp’ ]) !== ‘WEBP’ ) return false ;
>
if (!isset( $header [ ‘Vp’ ]) || strpos ( strtoupper ( $header [ ‘Vp’ ]), ‘VP8’ ) === false ) return false ;
>

if (
strpos ( strtoupper ( $header [ ‘Chunk’ ]), ‘ANIM’ ) !== false ||
strpos ( strtoupper ( $header [ ‘Chunk’ ]), ‘ANMF’ ) !== false
) $header [ ‘Animation’ ] = true ;
> else $header [ ‘Animation’ ] = false ;
>

if ( strpos ( strtoupper ( $header [ ‘Chunk’ ]), ‘ALPH’ ) !== false ) $header [ ‘Alpha’ ] = true ;
> else if ( strpos ( strtoupper ( $header [ ‘Vp’ ]), ‘VP8L’ ) !== false ) // if it is VP8L, I assume that this image will be transparency
// as described in https://developers.google.com/speed/webp/docs/riff_container#simple_file_format_lossless
$header [ ‘Alpha’ ] = true ;
> else $header [ ‘Alpha’ ] = false ;
>
>

  • Функции GD и функции для работы с изображениями
    • gd_​info
    • getimagesize
    • getimagesizefromstring
    • image_​type_​to_​extension
    • image_​type_​to_​mime_​type
    • image2wbmp
    • imageaffine
    • imageaffinematrixconcat
    • imageaffinematrixget
    • imagealphablending
    • imageantialias
    • imagearc
    • imageavif
    • imagebmp
    • imagechar
    • imagecharup
    • imagecolorallocate
    • imagecolorallocatealpha
    • imagecolorat
    • imagecolorclosest
    • imagecolorclosestalpha
    • imagecolorclosesthwb
    • imagecolordeallocate
    • imagecolorexact
    • imagecolorexactalpha
    • imagecolormatch
    • imagecolorresolve
    • imagecolorresolvealpha
    • imagecolorset
    • imagecolorsforindex
    • imagecolorstotal
    • imagecolortransparent
    • imageconvolution
    • imagecopy
    • imagecopymerge
    • imagecopymergegray
    • imagecopyresampled
    • imagecopyresized
    • imagecreate
    • imagecreatefromavif
    • imagecreatefrombmp
    • imagecreatefromgd2
    • imagecreatefromgd2part
    • imagecreatefromgd
    • imagecreatefromgif
    • imagecreatefromjpeg
    • imagecreatefrompng
    • imagecreatefromstring
    • imagecreatefromtga
    • imagecreatefromwbmp
    • imagecreatefromwebp
    • imagecreatefromxbm
    • imagecreatefromxpm
    • imagecreatetruecolor
    • imagecrop
    • imagecropauto
    • imagedashedline
    • imagedestroy
    • imageellipse
    • imagefill
    • imagefilledarc
    • imagefilledellipse
    • imagefilledpolygon
    • imagefilledrectangle
    • imagefilltoborder
    • imagefilter
    • imageflip
    • imagefontheight
    • imagefontwidth
    • imageftbbox
    • imagefttext
    • imagegammacorrect
    • imagegd2
    • imagegd
    • imagegetclip
    • imagegetinterpolation
    • imagegif
    • imagegrabscreen
    • imagegrabwindow
    • imageinterlace
    • imageistruecolor
    • imagejpeg
    • imagelayereffect
    • imageline
    • imageloadfont
    • imageopenpolygon
    • imagepalettecopy
    • imagepalettetotruecolor
    • imagepng
    • imagepolygon
    • imagerectangle
    • imageresolution
    • imagerotate
    • imagesavealpha
    • imagescale
    • imagesetbrush
    • imagesetclip
    • imagesetinterpolation
    • imagesetpixel
    • imagesetstyle
    • imagesetthickness
    • imagesettile
    • imagestring
    • imagestringup
    • imagesx
    • imagesy
    • imagetruecolortopalette
    • imagettfbbox
    • imagettftext
    • imagetypes
    • imagewbmp
    • imagewebp
    • imagexbm
    • iptcembed
    • iptcparse
    • jpeg2wbmp
    • png2wbmp

    Источник

    Изображения WebP в GD PHP

    WebP – формат сжатия изображений, разработанный Google. Имеет более меньший размер файла по сравнению с JPG, но не поддерживается продуктами Apple. В PHP поддержка формата появилась с версии 5.4.0.

    Конвертирование в WebP

    JPG в WebP

    $src = __DIR__ . '/image.jpg'; $info = pathinfo($src); $img = imageCreateFromJpeg($src); imageWebp($img, $info['dirname'] . '/' . $info['filename'] . '.' . 'webp', 100); imagedestroy($img);

    PNG в WebP

    $src = __DIR__ . '/image.png'; $info = pathinfo($src); $img = imageCreateFromPng($src); imageWebp($img, $info['dirname'] . '/' . $info['filename'] . '.' . 'webp', 100); imagedestroy($img);

    GIF в WebP

    $src = __DIR__ . '/image.gif'; $info = pathinfo($src); $img = imageCreateFromGif($src); imageWebp($img, $info['dirname'] . '/' . $info['filename'] . '.' . 'webp', 100); imagedestroy($img);

    Вывод в браузер

    header('Content-Type: image/webp'); imageWebp($img, null, 100);

    WebP в другие форматы

    JPG

    $src = __DIR__ . '/image.webp'; $info = pathinfo($src); $img = imageCreatefromWebp($src); imageJpeg($img, $info['dirname'] . '/' . $info['filename'] . '.jpg', 100); imagedestroy($img);

    Вывод в браузер:

    header('Content-Type: image/jpeg'); imageJpeg($img, null, 100);

    PNG

    $src = __DIR__ . '/image.webp'; $info = pathinfo($src); $img = imageCreatefromWebp($src); imagePng($img, $info['dirname'] . '/' . $info['filename'] . '.png'); imagedestroy($img);

    Вывод в браузер:

    header('Content-Type: image/x-png'); imagePng($img);

    GIF

    $src = __DIR__ . '/image.webp'; $info = pathinfo($src); $img = imageCreatefromWebp($src); imageGif($img, $info['dirname'] . '/' . $info['filename'] . '.gif'); imagedestroy($img);

    Вывод в браузер:

    header('Content-Type: image/gif'); imageGif($img);

    Проблемы с WebP

    1. Баг c цветами

    В библиотеке GD, в функции imageCreatefromWebp() есть ошибка из-за которой изображение теряет синий канал. Сообщалось что ошибка исправлена с PHP >= 5.6.12, но баг может встречаться на сборках PHP 7.

    Оригинальное изображение Webp

    В функции imageCreatefromWebp есть ошибка из-за которой изображение теряет синий канал

    function fixBlue($img) < $tmp = imagecreatetruecolor(imagesx($img),imagesy($img)); $color = imagecolorallocate($tmp, 255, 255, 255); imagefill($tmp, 0, 0, $color); for ($y = 0; $y < imagesy($img); $y++) < for ($x=0; $x < imagesx($img); $x++) < $rgb = imagecolorat($img, $x, $y); $r = ($rgb >> 24) & 0xFF; $g = ($rgb >> 16) & 0xFF; $b = ($rgb >> 8) & 0xFF; $pixelcolor = imagecolorallocate($tmp, $r, $g, $b); imagesetpixel($tmp, $x, $y, $pixelcolor); > > return $tmp; >

    Использование:

    $src = __DIR__ . '/image.webp'; $info = pathinfo($src); $img = imageCreatefromWebp($src); $img = fixBlue($img); imageJpeg($img, $info['dirname'] . '/' . $info['filename'] . '.jpg'); imagedestroy($img);

    2. Битые файлы

    Некоторые файлы сгенерированные через PHP GD могут не открываться – причина тут в отсутствии нулевого байта в конце файла, из-за этого браузер считает такие изображения битыми. Исправляется следующим фиксом:

    $file = __DIR__ . '/фото.jpg'; $new = __DIR__ . '/фото.webp'; $img = imageCreateFromJpg($file); imageWebp($img, $new, 100); imagedestroy($img); if (filesize($new) % 2 == 1)

    3. Теряется прозрачность при сохранении PNG в WEBP

    До версии библиотеки GD 2.2.5 у WEBP нет поддержки альфа-канала, эта версия уже входит в PHP 7.3, но на некоторых хостингах она установлена и на более ранних версиях PHP.

    Источник

    Читайте также:  Python selenium start maximized
Оцените статью