Unity3D:关于Texture2D和byte字节互转的坑

大腿Plus Unity3D项目开发评论540阅读模式

在开发中,经常需要对图片和byte字节流进行互转,但是有时候会出现Texture2D转byte的时候byte字节数组会比原始byte数组大的情况。关键问题就是使用EncodeToPNG等Texture2D自带的方法。如果图片格式是jpg的时候,用EncodeToPNG转byte数组的时候就大10多倍。

所以,在转byte数组前,要清楚的知道图片格式,然后根据格式使用不同的方法。尤其是图片为png格式的时候,因为png格式在转换的时候会带有透明通道信息,也就是本来jpg等格式没有透明也会带有透明通道。这也是byte数组会大10多倍的原因。文章源自大腿Plus-https://www.zhaoshijun.com/archives/2043

下面是根据不同格式,使用不同方法转byte数组的代码。


如果不知道具体格式,并且图片没有透明通道的话,尽量用EncodeToJPG进行转换。文章源自大腿Plus-https://www.zhaoshijun.com/archives/2043 文章源自大腿Plus-https://www.zhaoshijun.com/archives/2043
我的微信
微信扫一扫
weinxin
shijun_z
我的QQ
QQ扫一扫
weinxin
846207670
 
大腿Plus
  • 本文由 大腿Plus 发表于 2023年12月12日 11:30:23
  • 转载请务必保留本文链接:https://www.zhaoshijun.com/archives/2043

发表评论