As of today (end of january 2019), WebP is now supported across all the major browsers (Edge, Chrome, Firefox, Opera).
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
imagewebp — WebP görüntüyü tarayıcıya veya dosyaya çıktılar
Belirtilen görüntü
nesnesini çıktılar veya kaydeder.
görüntü
imagecreatetruecolor() gibi bir görüntü oluşturma işlevinden dönen bir GdImage nesnesi.
dosya
Dosyanın kaydedileceği yol veya işlev döndüğünde
kendiliğinden kapanan açık bir akım kaynağı. null
atanırsa veya hiçbir şey
atanmazsa doğrudan ham görüntü akımı çıktılanır.
kalite
kalite
0 (en kötü kalite, daha küçük dosya) ile
100 (en iyi kalite, daha büyük dosya) arasında olmalıdır.
Başarı durumunda true
, başarısızlık durumunda false
döner.
Ancak, libgd görüntüyü çıktılamakta başarısız olursa bu işlev true
döndürür.
Sürüm: | Açıklama |
---|---|
8.0.0 |
görüntü bağımsız değişkeninde artık
bir GdImage nesnesi aktarmak gerekiyor; evvelce
resource türünde geçerli bir gd değeri
gerekirdi.
|
Örnek 1 - WebP görüntünün dosyaya kaydedilmesi
<?php
// Boş bir görüntü oluştur ve bir metin çiz
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'WebP with PHP', $text_color);
// Görüntüyü kaydet
imagewebp($im, 'php.webp');
// Belleği serbest bırak
imagedestroy($im);
?>
As of today (end of january 2019), WebP is now supported across all the major browsers (Edge, Chrome, Firefox, Opera).
To convert a PNG image to Webp, we can do this:
<?php
// Image
$dir = 'img/countries/';
$name = 'brazil.png';
$newName = 'brazil.webp';
// Create and save
$img = imagecreatefrompng($dir . $name);
imagepalettetotruecolor($img);
imagealphablending($img, true);
imagesavealpha($img, true);
imagewebp($img, $dir . $newName, 100);
imagedestroy($img);
?>
Function to save any image to Webp
public static function webpImage($source, $quality = 100, $removeOld = false)
{
$dir = pathinfo($source, PATHINFO_DIRNAME);
$name = pathinfo($source, PATHINFO_FILENAME);
$destination = $dir . DIRECTORY_SEPARATOR . $name . '.webp';
$info = getimagesize($source);
$isAlpha = false;
if ($info['mime'] == 'image/jpeg')
$image = imagecreatefromjpeg($source);
elseif ($isAlpha = $info['mime'] == 'image/gif') {
$image = imagecreatefromgif($source);
} elseif ($isAlpha = $info['mime'] == 'image/png') {
$image = imagecreatefrompng($source);
} else {
return $source;
}
if ($isAlpha) {
imagepalettetotruecolor($image);
imagealphablending($image, true);
imagesavealpha($image, true);
}
imagewebp($image, $destination, $quality);
if ($removeOld)
unlink($source);
return $destination;
}
WebP is not yet supported by Safari, although they are experimenting with it.
Check out https://caniuse.com/#search=webp for the latest support information.