溫馨提示×

PHP如何支持WebP圖像格式

PHP
小樊
110
2024-09-04 22:00:13
欄目: 編程語言

要在PHP中支持WebP圖像格式,您需要確保已安裝了GD庫(一個用于處理圖像的PHP擴展)或Imagick庫(一個用于處理圖像的強大的PHP擴展)。

以下是使用GD庫和Imagick庫將JPEG/PNG圖像轉(zhuǎn)換為WebP格式的方法:

  1. 使用GD庫:

首先,確保已經(jīng)安裝并啟用了GD庫??梢酝ㄟ^運行phpinfo()函數(shù)來檢查GD庫是否已啟用。

function convertImageToWebP($source, $destination, $quality) {
    // 獲取圖像的類型
    $imageType = exif_imagetype($source);
    
    // 根據(jù)圖像類型創(chuàng)建圖像資源
    switch ($imageType) {
        case IMAGETYPE_JPEG:
            $image = imagecreatefromjpeg($source);
            break;
        case IMAGETYPE_PNG:
            $image = imagecreatefrompng($source);
            break;
        default:
            return false;
    }
    
    // 設(shè)置WebP圖像質(zhì)量
    $quality = (int) $quality;
    if ($quality < 0 || $quality > 100) {
        $quality = 80;
    }
    
    // 將圖像保存為WebP格式
    imagewebp($image, $destination, $quality);
    
    // 銷毀圖像資源
    imagedestroy($image);
    
    return true;
}

$source = 'path/to/your/image.jpg'; // 輸入圖像路徑
$destination = 'path/to/your/output.webp'; // 輸出WebP圖像路徑
$quality = 80; // WebP圖像質(zhì)量(0-100)

convertImageToWebP($source, $destination, $quality);
  1. 使用Imagick庫:

首先,確保已經(jīng)安裝并啟用了Imagick庫??梢酝ㄟ^運行phpinfo()函數(shù)來檢查Imagick庫是否已啟用。

function convertImageToWebP($source, $destination, $quality) {
    try {
        // 創(chuàng)建Imagick對象
        $image = new Imagick($source);
        
        // 設(shè)置WebP圖像質(zhì)量
        $quality = (int) $quality;
        if ($quality < 0 || $quality > 100) {
            $quality = 80;
        }
        
        // 將圖像轉(zhuǎn)換為WebP格式
        $image->setImageFormat('WEBP');
        $image->setImageCompressionQuality($quality);
        $image->writeImage($destination);
        
        // 銷毀Imagick對象
        $image->destroy();
        
        return true;
    } catch (Exception $e) {
        return false;
    }
}

$source = 'path/to/your/image.jpg'; // 輸入圖像路徑
$destination = 'path/to/your/output.webp'; // 輸出WebP圖像路徑
$quality = 80; // WebP圖像質(zhì)量(0-100)

convertImageToWebP($source, $destination, $quality);

這兩種方法都可以將JPEG/PNG圖像轉(zhuǎn)換為WebP格式。您可以根據(jù)自己的需求選擇使用哪種方法。

0