$awj="c:\\Users\\linker\\Pictures\\1.bmp";//需要读取的文件
$sh=fopen($awj,"rb");//----------------- 打开文件
$head=fread($sh,filesize($awj));// |
fclose($sh); //----------------- 关闭文件
$arr=unpack("C$wjdx",$head);
echo "1.文件信息头
";
echo "原始文件大小:".filesize($awj)." byte";
echo "
文件类型:".chr($arr[1]).chr($arr[2]);
echo "
文件大小:";
echo $arr[6]*16777216+$arr[5]*65536+$arr[4]*256+$arr[3];
echo "
保留 0:".chr($arr[7]).chr($arr[8]).chr($arr[9]).chr($arr[10]);
echo "
文件开始到位图数据之间的偏移量:";
echo $arr[14]*16777216+$arr[13]*65536+$arr[12]*256+$arr[11];
echo "
位图信息头长度:";
echo $arr[18]*16777216+$arr[17]*65536+$arr[16]*256+$arr[15];
echo "
位图宽度:";
echo $arr[22]*16777216+$arr[21]*65536+$arr[20]*256+$arr[19];
echo "
位图高度:";
echo $arr[26]*16777216+$arr[25]*65536+$arr[24]*256+$arr[23];
echo "
位图位面:";
echo $arr[28]*256+$arr[27];
echo "
2.位图信息头";
echo "
每像素占位数:";
echo $arr[30]*256+$arr[29];
echo "
压缩说明 0.不压缩 1.8位RLE压缩 2.4位RLE压缩 3.位域存放:";
echo $arr[34]*16777216+$arr[33]*65536+$arr[32]*256+$arr[31];
echo "
位图数据大小 byte:";
echo $arr[38]*16777216+$arr[37]*65536+$arr[36]*256+$arr[35];
echo "
水平分辨率 像素/米:";
echo $arr[42]*16777216+$arr[41]*65536+$arr[40]*256+$arr[39];
echo "
垂直分辨率 像素/米:";
echo $arr[46]*16777216+$arr[45]*65536+$arr[44]*256+$arr[43];
echo "
位图使用的颜色索引数 0的话为使用所有调色板项:";
echo $arr[50]*16777216+$arr[49]*65536+$arr[48]*256+$arr[47];
echo "
对图像显示有只要影响的颜色索引的数目 0为都重要:";
echo $arr[54]*16777216+$arr[53]*65536+$arr[52]*256+$arr[51];
echo "
下面第 55字节开始为位图颜色数据:";
echo "电脑存放顺序 24位 BGR 32位 BGRA,读取时按 RGB读取:下面是最后一行的第一个像素的颜色信息:";
echo $arr[57].$arr[56].$arr[55];
?>