在PHP中检测WEBP图像是否透明

在PHP中检测WEBP图像是否透明,php,Php,我试图检查webp图像在PHP中是否透明。 可能吗 最好使用纯php 更新: 经过研究。。。我编写了这个php函数。效果很好 webp\u info()检测webp图像中的透明和动画 函数webp\u info($f){ // https://github.com/webmproject/libwebp/blob/master/src/dec/webp_dec.c // https://developers.google.com/speed/webp/docs/riff_container //

我试图检查webp图像在PHP中是否透明。 可能吗

最好使用纯php

更新:

经过研究。。。我编写了这个php函数。效果很好

webp\u info()
检测webp图像中的透明和动画

函数webp\u info($f){
// https://github.com/webmproject/libwebp/blob/master/src/dec/webp_dec.c
// https://developers.google.com/speed/webp/docs/riff_container
// https://developers.google.com/speed/webp/docs/webp_lossless_bitstream_specification
// https://stackoverflow.com/questions/61221874/detect-if-a-webp-image-is-transparent-in-php
$fp=fopen($f,'rb');
如果(!$fp){
抛出新异常(“webp_info():fopen($f):失败”);
}
$buf=fread($fp,25);
fclose($fp);
开关(真){
大小写!是字符串($buf):
案例斯特伦($buf)<25:
case substr($buf,0,4)!='RIFF':
case substr($buf,8,4)!='WEBP':
案例substr($buf,12,3)!='VP8':
抛出新异常(“webp_info():不是有效的webp映像”);
案例$buf[15]='':
//简单文件格式(有损)
返回数组(
'类型'=>'VP8',
“has animation”=>false,
'has transparent'=>false,
);
案例$buf[15]=“L”:
//简单文件格式(无损)
返回数组(
'类型'=>'VP8L',
“has animation”=>false,
'具有透明'=>(bool)(!!(ord($buf[24])&0x00000010)),
);
案例$buf[15]=“X”:
//扩展文件格式
返回数组(
'类型'=>'VP8X',
“has animation”=>(bool)(!!(ord($buf[20])&0x00000002)),
'具有透明'=>(bool)(!!(ord($buf[20])&0x00000010)),
);
违约:
抛出新异常(“webp_info():无法检测webp类型”);
}
}
var_导出(webp_info('image.webp'));

您想知道这是否可行或如何实现吗?如果是后者,请相应地编辑您的问题,并包括您在了解如何做到这一点方面所做的努力。您想知道这是否可行或如何做到吗?如果是后者,请相应地编辑您的问题,并包括您在了解如何做到这一点方面所做的努力。