微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ImageCreateTrueColor和PNG的PHP GD问题

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

问题是,如果我使用ImageCreateTrueColor()而不是ImageCreate(),则PNG文件文件大小将从80kb增加到150kb.如果我使用ImageCreate(),文件大小将保持不变,但是颜色会改变!

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

哦,我正在缩小PNG的尺寸.

解决方法:

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐