我正在使用 GD 图像库函数 ImageCopyResampled() 调整 PNG 图像的大小。一切都很好,我什至可以使用 ImageCreateTrueColor() 来保持 alpha 混合透明度,而不是使用 ImageCreate() 来创建调整大小的图像。
问题是,如果我使用 ImageCreateTrueColor() 而不是 ImageCreate(),PNG 文件的文件大小会从 80kb 增加到 150kb。如果我使用 ImageCreate(),文件大小将保持不变,但颜色会发生变化!
所以我的问题是,如何在调整 PNG 图像大小时保留 alpha 混合而不增加文件大小?
哦,我正在缩小 PNG 的尺寸。
With imagecreate()
您正在创建一个索引颜色 PNG 文件并使用imagecreatetruecolor()
您正在创建一个 24 位颜色 PNG 文件。当然,真彩色图像的重采样质量会显得更好,因为重采样时可以使用更大的颜色范围。和imagecreate()
,系统只能使用小得多的调色板。
您可以使用 Photoshop 或 Gimp 尝试此操作,以不同的颜色模式(索引和 RGB)缩放图像。不幸的是,这是游戏的本质——当要存储的颜色越多时,文件大小就会越大。
我不确定这是否会产生影响,但你可以尝试使用imagecopyresampled()
复制到真彩色资源(来自imagecreatetruecolor()
),然后复制(但不重新采样)that到调色板图像资源。这样调色板是根据重新采样的结果确定的。不过,我不确定您是否能够保留 Alpha 通道。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)