Nea*_*vis 3 javascript tiff libtiff
我在github上使用seikichi的一个名为tiff.js的LibTIFF C代码的编译Emscripten端口.在我的代码中,我需要获得一些TIFF标签.在tiff.js中,您可以调用tiff.getField(标记值).我需要的一个标签是ROWSPERSTRIP,它是278所以要得到这个标签,我打电话如下:
var rps = tiff.getField(278); //return rows per strip tiff tag
Run Code Online (Sandbox Code Playgroud)
这似乎适用于一些较小的值1到176(不完全确定吗?)但我有几个文件,AsTiffTagViewer报告为每个条带224行和一个文件,每个条带746行.但是,tiff.js会将这两个值分别错误地报告为6和1.我正在逐步调试tiff.js中的调试器并注意它来到一个包含以下代码的地方:
do{if(b>>>0<=65535){d=e[j+24>>1]|0;if((1<<(d&31)&c[a+40+(d>>>5<<2)>>2)]|0)==0){k=0}else{break}i=f;return k|0}}while(0);
Run Code Online (Sandbox Code Playgroud)
我怀疑它是丑陋的,因为它最好的Emscripten可以用C代码.现在我知道">>"和"<<"做了什么,但我似乎无法找到关于">>>"的任何内容.我还没有任何想法,如果这是tiff.js中的代码部分导致tiff.getField(278)不能错误地返回每个条带值的一些较大的行(我现在所知道的是它看起来更小的行数条带值会正确返回,而较大的条带值未正确返回它会出现.
所以我的主要问题是什么是">>>",我的第二个问题是,是否有人对tiff.getField(278)可能无法正确处理较大值的原因有任何想法.注意:大多数其他基本TIFF标记确实返回正确的值,如tiff.getField(PHOTOMETRIC)和tiff.getField(SAMPLESPERPIXLE)...等.
提前感谢您的想法