Unity检测图集是否是正方形并且检测它的压缩格式是否是PVRTC
发布日期:2021-06-30 19:40:28 浏览次数:2 分类:技术文章

本文共 1530 字,大约阅读时间需要 5 分钟。

苹果中,没有etc-4的压缩格式,但是有pvrtc压缩格式,相比rgba的压缩格式,pvrtc的压缩比高很多,但是它有个特点,就是压缩完,图片会变成正方形,如果图集原始图片是长方形的,但是用了pvrtc压缩格式,就会导致图集乱了。所以我们需要判断图集是否是正方形,如果是,才设置它的压缩格式为正方形。

我们可以写个方法来检测

 

public static void CheckTextureFormat(string texturePath){    using(FileStream fs = new FileStream(texturePath,FileMode.Open))    {        using(BinaryReader br = new BinaryReader(fs))        {            br.ReadInt32();            br.ReadInt32();            br.ReadInt32();            br.ReadInt32();            var widthB = br.ReadInt32();            var wb = System.BitConverter.GetBytes(widthB);            var width = System.BitConverter.ToInt32(new byte[]{wb[3],wb[2],wb[1],wb[0]},0);                        var heightB = br.ReadInt32();            var hb = System.BitConverter.GetBytes(heightB);            var height = System.BitConverter.ToInt32(new byte[]{hb[3],hb[2],hb[1],hb[0]},0);            if(width != height)            {                //不是正方形//                var assetPath = "Assets"+texturePath.Replace(Application.dataPath,"");                TextureImporter imp = AssetImporter.GetAtPath(assetPath) as TextureImporter;                var format = imp.GetAutomaticFormat("iPhone");                if(format.ToString().ToLower().Contains("pvr"))                {                    Debug.Log("图片不是正方形,却使用了PVRTC压缩格式");                }            }        }    }}

 

补充

图集压缩格式建议

 

Android

 iOS

RGB图 RGB Compressed ETC 4 bits

正方形图:RGB Compressed PVRTC 4 bits

长方形图:RGB 16bit

alpha图 RGB Compressed ETC 4 bits 正方形图:RGB Compressed PVRTC 4 bits

长方形图:RGB 16bit

 

转载地址:https://linxinfa.blog.csdn.net/article/details/86657128 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:NGUI的UIPanel的Depth改良:二级排序
下一篇:HTML样式的使用笔记

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月20日 16时28分14秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章