365bet最稳定网址-365bet官网注册开户-77365bet体育在线投注

字幕基础:字幕介绍、字幕种类及常见格式(转)

字幕基础:字幕介绍、字幕种类及常见格式(转)

Linux源码中的mktime算法解析

WYYwyy1111:

我得出的结果,相对于C mktime函数多出了8小时

linux系统中链接的接口——符号

恋喵大鲤鱼:

内容缺失严重啊

Java中原生(native)函数的用法

橘子西瓜:

在Windows环境下用Visual Studio 2017编译的话,需要修改javah生成的C头文件(虽然注释提示不要修改),需要将JNIEXPORT void JNICALL Java_TestJni_myPrint(JNIEnv *, jobject);修改为JNIEXPORT void JNICALL Java_TestJni_myPrint(JNIEnv * env, jobject obj);否则报C2055错误。

GCC 编译动态库和静态库

路和前方:

绝对是好文,精简

PNG文件格式

wild_foxer:

看了png specification和RFC1951,但根据自己的理解和实际数据有出入。规范说IDAT部分由一个zlib块组成,zlib块又包含一系列的compressed block。(没问题吧?)

zlib格式如下。

CMF | FLG | compressed data | alder32校验

其中compressed data前3bit是 1bit的BFINAL(1表示最后一个block) 和2bit的BTYPE(00表不压缩,01固定huffman压缩,10动态huffman压缩,11错误).这没错吧??

我用windows画图resize一副PNG图片至8*9像素大小,然后用ultraedit打开,找到iDAT部分,如下:

00 00 00 AE 49 44 41 54 28 53 63 F8 0F 05 07 0E 1E FA FF E4 FE.....

开始4bytes 00 00 00 AE 是后面 compressed data块的长度。

接着4bytes 49 44 41 54 是png图片iDAT关键块标示符。

接下来应该是zlib封装的数据了:

接着2bytes 28 53 分别是CMF,FLG 表示deflate算法中滑动窗口大小为32kb/(2**(7-2))=1kb。53二进制为01010011, 开始01表明FLEVEL为fast。

接下来应该是BFINAL, BTYPE了吧??

63 二进制为0110 0011。开始的0表示不是最后一块,但png图像大小为8*9,应该只有一块吧?接下来11为BTYPE吧?可是11是未定义的错误。怎么能为11呢?

求教!!!

相关推荐