我正在使用GD图像库函数ImageCopyResampled()调整PNG图像的大小。一切正常,我甚至可以使用ImageCreateTrueColor()保持alpha混合透明度,而不是使用ImageCreate()来创建调整大小的图像。
问题是,如果我使用ImageCreateTrueColor()而不是ImageCreate(),PNG文件的文件大小会从80kb增加到150kb。如果我使用ImageCreate()文件大小保持相同的大小,但颜色螺丝!
所以我的问题是,在不增加文件大小的情况下,如何在调整PNG图像大小时保留Alpha混合?
哦,我正在缩小PNG的尺寸。
答案 0 :(得分:1)
使用imagecreate()
您正在创建索引颜色的PNG文件,并使用imagecreatetruecolor()
创建一个24位彩色PNG文件。当然,对于真彩色图像,重采样质量会显得更好,因为它在重采样时具有更大范围的颜色。使用imagecreate()
,系统只能使用更小的调色板。
您可以使用Photoshop或Gimp进行尝试,以不同的颜色模式(索引和RGB)缩放图像。不幸的是,这是游戏的本质 - 当存储更多颜色时,文件大小会更大。
我不确定它是否会有所作为,但您可以尝试使用imagecopyresampled()
复制到真彩色资源(来自imagecreatetruecolor()
),然后复制(但不能重新取样)< em>那到调色板图像资源。这样,基于重采样结果确定调色板。不过,我不确定你是否能够保留alpha通道。