获取WebP格式图片的长宽

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

Java代码:

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 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 ) 字节数组[ 26 ] & 0xff ;                  int 高 = ((( int ) 字节数组[ 29 ] & 0xff ) << 8 ) | ( int ) 字节数组[ 28 ] & 0xff ;                  System.out.print( "宽:" +宽+ ",高:" +高);              } else {                  System.out.print( "文件不是webp格式" );              }                输入.close();                        }          catch (Exception e)          {               System.out.println(e.getMessage());                }      } }

Java代码参考:Java图像处理实例

 

PHP代码

01 02 03 04 05 06 07 08 09 10 11 12 13 $文件 = "https://www.gstatic.com/webp/gallery/4.sm.webp" ; $文件流 = fopen ($文件, "rb" ); $字节数组 = fread ($文件流, 30); fclose($文件流); $数组 = unpack( "C12格式/S9尺寸" , $字节数组); for ( $i =9; $i <=12; $i ++) {      $文件格式.= chr ($数组[ '格式' . $i ]); } if (0== strcmp ( 'WEBP' , $文件格式 )) print_r( "宽:" .$数组[尺寸8]. " 高:" .$数组[尺寸9]); ?>

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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部