获取一张图片所包含的像素数

99 篇文章 0 订阅
    /**
     * 获取一张图片所包含的像素数
     * @param 
     * @return
     */
   public static long getImagePixes(InputStream is)
   {
       if (is == null )
       {
           return -1;
       }
       try
       {
           int b = is.read();
           if (b == 0xff )
           {
               b = is.read();
               if (b == 0xd8)
               {
                   return getJpgPixes(is);
               }
           }
           else if (b == 0x47)
           {
               b = is.read();
               if (b == 0x49)
               {
                   b = is.read();
                   if (b == 0x46)
                   {
                       is.skip(3);//跳过3字节
                       int w = (is.read() | (is.read() << 8));
                       int h = (is.read() | (is.read() << 8));
                       return w * h;
                   }
               }
           }
           else if (b == 0x42)
           {
               b = is.read();
               if (b == 0x4d)
               {
                   is.skip(16);
                   long w = (is.read() | (is.read() << 8) | (is.read() << 16) | (is.read() << 24));
                   long h = (is.read() | (is.read() << 8) | (is.read() << 16) | (is.read() << 24));
                   return w * h;
               }
              
           }
           else if (b == 0x89)
           {
               b = is.read();
               if (b == 0x50)
               {
                   b = is.read();
                   if (b == 0x4E)
                   {
                       is.skip(13);//跳过3字节
                       long w = ((is.read()<< 24) | (is.read() << 16) | (is.read() << 8) | is.read());
                       long h = ((is.read()<< 24) | (is.read() << 16) | (is.read() << 8) | is.read());
                       return w * h;
                   }
               }
           }
       }
       catch (Exception e)
       {
           e.printStackTrace();
       }
       return -1;
   }
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FocusOneThread

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值