繁体   English   中英

Android PNG位图压缩在Note 4和Nexus 5之间无法正常工作

[英]Android PNG bitmap compression not working properly between Note 4 and Nexus 5

您好一段时间以来,一直在使用位图转换为PNG来保持透明性而没有问题。 然后将流字节数组发送到其他设备。

bmp.compress(CompressFormat.PNG,100,stream);

到目前为止,它一直运行良好,直到我开始使用Android5.0的Nexus5和Android 4.4.4的Note 4进行测试。

到目前为止,我已经使用了几种设备(注1,注2,S3,S4等),并且所有这些设备都可以在Nexus 5上正确接收PNG。

当我使用Note 4压缩时,Nexus 5似乎无法解码字节数组

位图图像= BitmapFactory.decodeByteArray(arr,0,arr.length);

图片为空。 接收经过编码的PNG的其他设备也可以使用相同的代码进行接收和处理...即使我尝试将PNG移至Nexus,我也无法在设备上打开文件,即使尝试使用Photos应用程序看到图片,我收到消息“找不到媒体”。 使用在其他设备上生成的PNG,我完全没有问题。

我刚刚尝试了其他方法来找出问题所在...我使用了一个应用程序来生成png图像( https://play.google.com/store/apps/details?id=com.jun。 shop_image_editing_engver&hl = zh-CN ),如果我在NOTE 4上生成了PNG,则无法在NEXUS上打开它,如果我在Note 2上生成了PNG,则可以将其打开。

有人有这样的问题吗?

谢谢您的帮助

编辑:只是为了澄清,其他设备可以打开NOTE 4生成的图像(下面的眼睛是这样的图像)

我用note4压缩的png

对于问题中包含的图像,我看到zlib压缩数据的检查值中存在错误。 图像的制作者犯了一个错误,或者数据在传输中被破坏。 图像的接收者可以选择对数据中的此类错误有所宽容,因此在某些情况下可能会显示,但在其他情况下则不会显示。

上周我也遇到了这个问题。 以我为例,华硕zenphone 2无法显示注释4生成的png。但是在小米mi4中也可以使用相同的png。

在这种情况下,我的解决方案是将Bitmap.CompressFormat从PNG更改为WEBP,因为WEBP也能够创建透明图像。

我知道它只是“治愈”症状,而不是根本问题,但至少对我来说足够了,希望对您足够。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM