PHP 5용 WebP 크기 추출 함수

운영자 | 기사입력 2025/05/27 [03:29]
PHP >
필자의 다른기사 보기 인쇄하기 메일로 보내기 글자 크게 글자 작게
PHP 5용 WebP 크기 추출 함수
 
운영자   기사입력  2025/05/27 [03:29]
 <?php
function getWebPSize($filename) {
    $fp = fopen($filename, 'rb');
    if (!$fp) {
        return false;
    }

    $header = fread($fp, 30);
    fclose($fp);

    if (substr($header, 0, 4) !== "RIFF" || substr($header, 8, 4) !== "WEBP") {
        return false;
    }

    $chunk_type = substr($header, 12, 4);

    if ($chunk_type === "VP8 ") {
        // Lossy WebP
        $w = unpack("v", substr($header, 26, 2));
        $h = unpack("v", substr($header, 28, 2));

        $width  = $w[1] & 0x3FFF;
        $height = $h[1] & 0x3FFF;

        return array($width, $height);

    } elseif ($chunk_type === "VP8X") {
        // Extended WebP
        $w = unpack("C3", substr($header, 24, 3));
        $h = unpack("C3", substr($header, 27, 3));

        $width  = ($w[1] | ($w[2] << 8) | ($w[3] << 16)) + 1;
        $height = ($h[1] | ($h[2] << 8) | ($h[3] << 16)) + 1;

        return array($width, $height);
    }

    return false;
}

// 예제 사용
$size = getWebPSize('example.webp');
if ($size !== false) {
    echo 'Width: ' . $size[0] . ', Height: ' . $size[1];
} else {
    echo 'WebP 이미지가 아니거나 읽기 실패.';
}
?>

트위터 트위터 페이스북 페이스북 카카오톡 카카오톡
기사입력: 2025/05/27 [03:29]  최종편집: ⓒ iwav
 
 
PHP 많이 본 기사