做二手货车网站公司最近的男科医院是哪家医院
做二手货车网站公司,最近的男科医院是哪家医院,网上商店系统设计与开发,小榄网站设计普通JPG图片#xff0c;如果本身不透明#xff0c;改成透明位图方式加入ICO是否会变大#xff1f;如果是加载透明PNG#xff0c;改成非透明模式#xff0c;以PNG或BMP方式存入#xff0c;体积是否会变小#xff1f;这是一个非常硬核的优化问题。要回答这个问题#xff…普通JPG图片如果本身不透明改成透明位图方式加入ICO是否会变大如果是加载透明PNG改成非透明模式以PNG或BMP方式存入体积是否会变小这是一个非常硬核的优化问题。要回答这个问题我们需要理解ICO 存储结构中“透明通道”是如何占用空间的。1. 普通 JPG 图片改“透明位图”加入 ICO体积会变大吗结论会变大而且幅度非常明显。原因如下JPG 的本质JPG 是一种有损压缩格式它不记录透明信息Alpha 通道且压缩率极高。透明位图 (32bpp BMP) 的本质在 ICO 中如果你指定以 BMP 方式存储且要支持透明它必须使用32位位图 (ARGB)。这意味着每个像素点都要多分配8位1字节来存储 Alpha 透明信息。计算对比一张 256x256 的普通图片JPG 压缩后可能只有30KB。转成 32位 BMP 存入 ICO它的大小是固定的256×256×4 字节256 KB。空间浪费即使原图完全不透明32位 BMP 依然会为每个像素分配一个值为255不透明的 Alpha 字节。2. 透明 PNG 改“非透明模式”存入体积会变小吗这取决于你最终选择的存储格式A. 以 PNG 方式存入PNG-in-ICO体积变化基本不变甚至可能略微变大。PNG 本身就是压缩格式。虽然“不透明”意味着 Alpha 通道数据全是255压缩算法Deflate处理这种重复数据非常高效但去掉 Alpha 通道从 RGBA 转为 RGB省下的空间非常有限。有时候为了兼容性转为非透明反而可能改变了 PNG 的色彩索引模式导致体积波动但总体差异很小。B. 以 BMP 方式存入BMP-in-ICO体积变化会变小 25%。透明模式必须使用 32位位图 (ARGB)每个像素 4 字节。非透明模式可以使用 24位位图 (RGB)每个像素3 字节。结果从 32位降到 24位文件数据量直接减少了 1/4。总结对比表转换场景存储格式体积变化原因JPG - 透明位图BMP剧增从有损压缩变成了无损、无压缩的 32位数据。JPG - 透明位图PNG增加增加了 Alpha 通道数据。透明 PNG - 非透明PNG微降/不变压缩算法对纯色 Alpha 通道已经优化得很好了。透明 PNG - 非透明BMP减少 25%每个像素从 4 字节减为 3 字节 (24bpp)。导出到 Google 表格给您的建议为了 VB6 兼容性且控制体积 建议小尺寸16, 32, 48使用BMP 格式因为这些尺寸即便不压缩也很大。大尺寸128, 256务必使用 PNG 格式。一个 256px 的 BMP 帧是 256KB而 PNG 帧通常只有 20-40KB。关于不透明 JPG 如果图片本身没有透明需求在MakeIcoBYformat中将其formatArray设为png是最划算的既能保持小体积又能通过现代格式支持。您是否需要我在代码里加入一个逻辑当尺寸大于 128 时强制使用 PNG小尺寸使用 BMP这通常是现代图标生成的“黄金准则”。