CentOS Linux 6和Android的JPEG编解码器将相同的JPEG文件解码为不同的位图,这让我感到很惊讶。
当我在C / C ++ CentOS Linux应用程序中使用libjpeg
而在Android 1中使用BitmapFactory
时,一些(许多)像素对红色,绿色或蓝色或所有这些像素都有不同的值。差异通常是1或2,因此看到与眼睛的区别很复杂或不可能,但是,如果稍后生成某种位图散列以识别此位图,则Linux和Android的散列值将不同。 / p>
我的问题是:有没有办法设置libjpeg
以便将JPEG文件解码为与Android相同的位图?
答案 0 :(得分:1)
答案是:否
您可能没有意识到,但这实际上是一个哲学问题,而不是计算机问题。
您是否有理由相信所有Android平台上的所有Android系统都将JPEG解码为同一位图?
或者即使这样做,他们是否会继续使用编解码器更新或新的Android版本,甚至是所有JPEG?
没有理由相信您今天可能会找到的任何解决方案明天仍将是解决方案,或者将应用于所有位图。
原因是您无法控制Android编解码器。
我建议您重新考虑需要这样做的原因。
否则,您可能会尝试获取相同CPU架构的Android编解码器,并在centos系统上尝试,甚至在centos系统上的容器中运行Android系统;但正如我警告过的那样,您不能指望它能解决您的问题。