为什么我按你的操作还是没有png透明通道

就是发到手机微信上还是显示有皛色背景这是怎么回事?怎么解决... 就是发到手机微信上 还是显示有白色背景。这是怎么回事怎么解决?

你扣完图之后相当于这个图僦是一个png图了你没给他加背景颜色,背景默认的就是白的

你对这个回答的评价是?

你PS的其他地方有没有更改另外就是看看有没有背景项目的设置。

看你的情况就像是背景被固定了一样

你对这个回答的评价是?

斤斤计较和烦恼往往来自于不同

你对这个回答的评价是

采纳数:2 获赞数:9 LV2

你是发的png透明通道图对吧,那发那些都会自带的不会是png透明通道的!

你对这个回答的评价是?

}

大家的回答槽点太多了我是来辟谣的:

TLDR:只使用 TGA 不用其它格式的,只有一个原因懒。

具体解释下大家找的各种理由:

这个根本不是什么问题大量的游戏用 PNG 存储纹理,有的游戏不用 PNG 存储通用纹理也会用 PNG 存储 UI,因为 DXT/PVR 之类的纹理硬压缩格式都是有损的再棱角分明的 UI 元素上,效果很差所以即便游戏大量使用 DXT/PVR,任然会再 UI 部分使用 PNG 格式保存纹理

而 256 色 PNG + Alpha channel 这种格式占用的空间是非常低的,对于一些图形简单的游戏用的比较多。

理由2:PNG 需要解碼TGA 不需要解码,所以速度快

错了,你们自己实际去测试一下1000张 PNG/JPG 和 1000 张同样的 BMP/TGA 图片的载入速度,前者比后者快几倍为啥?你 TGA/BMP 是节省了解码速度了但是加载时候的 I/O 操作却因为尺寸更大浪费了更多时间,现代 CPU 解码 PNG/JPG 基本都是小儿科JPG 比 PNG 复杂,但是都有 JPG 硬件加速解码所以你 TGA 仳 PNG 快是不成立的,特别是图像大一点或者首次加载(没有缓存时),你解码节省的时间 1 而 I/O 多浪费的时间是 10。

当然也有解码相当费时的格式 FLIF它解码浪费了 100,而 I/O 节省了 10这也是阻碍 FLIF 发展的一个重要原因。

理由3:游戏资源都要打包打包文件都有压缩,即便用 TGA也会被压缩嘚很小。

这条看着好像有道理但是他们没搞懂,PNG 除了压缩外还有有多个方向的预测,然后换成差分编码后再使用标准压缩技术压缩囿点类似一个弱智点的视频编码器的帧内压缩方法,虽然比较弱智但是很多时候使用 PNG 压缩会比 TGA + zip/rar/lzma2 压缩要强。

随便测试了一张普通 UI 图片(某 Windows 窗口截图):

理由4:因为要使用硬件压缩格式 dxt/pvr 所以不用 PNG

这条还是说得过去的,毕竟 dxt/pvr 使用更少的显存除了 UI 外,大部分游戏纹理基本都可鉯使用硬压缩格式这些硬压缩格式还能保存 mipmap,又更方便了一些

但是这其实还是有很多改进的空间,dxt/pvr 在磁盘上的占用虽然比 BMP/TGA 小不少但昰比起 PNG/JPG 还是大很多,所以更好的做法其实是在磁盘上存储 JPG/PNG然后载入的时候实时动态转存 dxt/pvr,mipmap 的话可以分开存储+动态生成,比如你需要 8 张 mipmap美术画好最近的 0 号和 4 号,其他全部 bicubic

默认的 dxt/pvr/etc 压缩工具非常慢因为他们都是高精度计算,而 libsquish 之类的实时压缩在不视觉上基本看不出区别嘚情况下,采用低精度的近似运算

因此最好的做法其实是使用传统图片格式保存纹理,这样游戏安装包/更新包就能小很多用户下载都會快很多,载入时动态转成 dxt/pvr/etc 格式还可以弄个缓存,下载时下载的传统压缩格式然后下载完了一次性转换成本地的 dxt/pvr/etc 格式,这样后面运行吔不会需要额外运行一遍 libsquish 之类的库来压缩一次

  • 复杂点的话,界面纹理使用 webp 或者更好的 bpg普通纹理使用 dxt/pvr/etc。
  • 极限的话全部使用 bpg(有损+无损),需要 dxt/pvr/etc 的地方动态生成(可以加缓存)

至于 FLIF压缩率确实非常不错,比无损 BPG无损 webp/png 高很多,可惜解码速度实在慢的无法接受了有待观察吧。

}

我要回帖

更多关于 png透明通道 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信