/**
* 擷取一張圖檔所包含的像素數
* @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;
}