android上jni跑图像分类程序崩溃了,报错libc : Fatal signal 11 ...
还好一个同事查出来有张gif图片冒充jpg,就是这个:
怎么知道是冒充的呢?
用文本文件查看工具打开这个图片,就会发现头几个子母是GIF89a
那是怎么崩溃的呢? 是因为在转灰度图时,通道数写死的,是4,因为一般jpg,png图片都可以表示为RGBA4通道,
所以改为根据图像的字节长度除以宽度*高度就得到了准确的通道数,gif的通道数是1,只有256色
p.s 很奇怪,jni c++代码里接收到的jint* 与上层传递的byte[]的长度不一样