1

我正在使用 GD 图像库函数 ImageCopyResampled() 调整 PNG 图像的大小。一切正常,我什至可以使用 ImageCreateTrueColor() 来保持 alpha 混合透明度,而不是使用 ImageCreate() 来创建调整大小的图像。

问题是,如果我使用 ImageCreateTrueColor() 而不是 ImageCreate(),PNG 文件的文件大小会从 80kb 增加到 150kb。如果我使用 ImageCreate() 文件大小保持在相同的大小,但颜色螺丝!

所以我的问题是,在不增加文件大小的情况下,如何在调整 PNG 图像大小时保留 alpha 混合?

哦,我正在减小 PNG 的尺寸。

4

1 回答 1

1

imagecreate()您一起创建索引颜色的 PNG 文件并与imagecreatetruecolor()您一起创建 24 位彩色 PNG 文件。当然,真彩色图像的重采样质量会更好,因为重采样时可以使用更大范围的颜色。使用imagecreate(),系统只能使用小得多的调色板。

您可以使用 Photoshop 或 Gimp 进行尝试,以不同的颜色模式(索引和 RGB)缩放图像。不幸的是,这是游戏的本质——当有更多颜色要存储时,文件大小会更大。

我不确定它是否会有所不同,但您可以尝试使用imagecopyresampled()复制到真彩色资源(从imagecreatetruecolor()),然后将其复制(但不重新采样)调色板图像资源。这样,调色板是根据重新采样的结果确定的。不过,我不确定您是否能够保留 Alpha 通道。

于 2010-04-16T02:44:17.313 回答