开发者社区> 问答> 正文

在研究图片头文件的时候有一行代码看不懂,望大神指点

最近一直在找获取网络图片的size的方式,最后得出两个结论:
1 使用分线程下载下来,然后获得图片的size
2 使用网络请求图片的头文件,然后从头文件中找到图片大小的信息
第一种方法需要主线程分线程切换,刷表老是出问题,先放着不管
重点是想搞一下第二个方法:
在网上找到了一个博客:http://cxjwin.github.io/2013/11/05/preview_image_size/

大神写的很不错,也能得出图片大小,但是其中一句代码看不懂
screenshot
这里的data是<00000400 000002ad>,只有八位,前四位是width,后四位是height

在打断点的那一行,在网上问了,<< 是左移运算符

但是我不清楚为什么要这样就算出了width值,不知道为什么要使用左移运算符

总之这一句加上上面的四行代码都不理解啊,求大神帮帮忙,我想自己写一个计算jpeg格式的

这里卧虎藏龙,肯定有大神!

展开
收起
杨冬芳 2016-06-24 16:58:10 1986 0
1 条回答
写回答
取消 提交回答
  • IT从业

    举个栗子

    每个字节8bit,用16进制表示成两位数字

    00 00 04 00 这个是 16进制的数

    作者获得头信息字节把他两个两个切开,变成4个16进制的数,所以在计算的时候需要各归其位,从高到底排列

    然后记住位移操作是在二进制的层面进行的

    最右边不需要动,所以位移为0*8=0,其实这里w4就等于w4<<0

    然后倒数第二个数,需要往左移动一个字节,位移1*8=8

    以此类推分别移动28=16,38=24

    就是这样,拼起来一个16进制数然后转成int而已

    2019-07-17 19:47:09
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Python第五讲——关于爬虫如何做js逆向的思路 立即下载
《0代码搭应用》 立即下载
不止代码 立即下载