获取WebP格式图片的长宽

通过查看十六进制文件,发现WebP格式图片的长宽信息位于文件头第26、27(高),28、29(宽)这四个字节中。

Java代码:

import java.io.File;
import java.io.FileInputStream;

/**
 * @author 42
 */
public class WebpSize {

    public static void main(String[] args) {
        File 文件=new File("示例.webp");
    
        try
        {
            FileInputStream 输入=new FileInputStream(文件);
            byte[] 字节数组=new byte[30];
            输入.read(字节数组);
            if("WEBP".equals(new String(字节数组,8,4,"utf-8"))){//先判断图片格式为webp
                int 宽 = (((int) 字节数组[27] & 0xff) << 8) | (int) 字节数组&#91;26&#93; & 0xff;
                int 高 = (((int) 字节数组&#91;29&#93; & 0xff) << 8) | (int) 字节数组&#91;28&#93; & 0xff;
                System.out.print("宽:"+宽+",高:"+高);
            }else{
                System.out.print("文件不是webp格式");
            }   
            输入.close();
            
        }
        catch(Exception e)
        {
             System.out.println(e.getMessage());       
        }
    }
}&#91;/code&#93;<span id="more-1167"></span>
<p>Java代码参考:<a href="http://wenku.baidu.com/view/804c95e49b89680203d825dd.html" target="_blank">Java图像处理实例</a></p>
<br />
<p>PHP代码</p>
&lt;?php
$文件 = "https://www.gstatic.com/webp/gallery/4.sm.webp";
$文件流 = fopen($文件, "rb");
$字节数组 = fread($文件流, 30);
fclose($文件流);
$数组 = unpack("C12格式/S9尺寸", $字节数组);
for($i=9;$i&lt;=12;$i++)
{
    $文件格式.=chr($数组['格式'.$i]);
}
if(0==strcmp ( 'WEBP' , $文件格式 ))
print_r("宽:".$数组[尺寸8]." 高:".$数组[尺寸9]);
?&gt;

PHP代码参考:舞动智慧的PHP里的pack和unpack函数详解

  1. 让WordPress支持webp图片尺寸 | Memory of 42

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *