将具有每像素透明度的 PNG-24 转换为 PNG-8
是否可以采用每个像素 alpha 值的 24 位 PNG 并将其转换为 8 位 PNG,同时保持透明度?原始图像最多只包含 256 种颜色,所以这应该是可能的,对吗?
---- 理由:
我正在 Actionscript 中开发图像裁剪器,它将编码的字节数组发送到 PHP,以在文件系统上创建为文件。
不幸的是,ActionScript 不支持 GIF 编码,因此在处理具有透明度的 gif 时,我们必须在 Actionscript 中对其进行 PNG 编码,然后再将其发布到 PHP。然后我们可以将其保存为 PNG 并使用 imagealphablending 和 imagesavealpha 函数保持透明度。
问题是文件大小比原始 gif 大很多。这可能是因为颜色空间现在是真彩色而不是 GIF 索引调色板。
Is it possible to take a 24 bit PNG with per-pixel alpha values and convert this into a 8 bit PNG while maintaining the transparency? The original image only contains a max of 256 colour so this should be possible, right?
---- The rationale:
I'm working on an image cropper in Actionscript which posts encoded bytearrays to PHP to be created as files on the file system.
Unfortuantely ActionScript doesn't support GIF Encoding so when dealing with a gif with transparency we have to PNG encode it in Actionscript before posting it to PHP. We can then save it as a PNG and maintain the transparency by using the imagealphablending and imagesavealpha functions.
The issue with this is the filesize is a lot bigger than the original gif. This is presumably because the colourspace is now true colour rather than the GIF indexed pallete.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
PNG-8 可以具有可变的 Alpha 透明度,但每种颜色(包括其 Alpha)都会在可用颜色数量中建立索引。
PNG-8 can have variable alpha transparency, but each color including its alpha gets indexed in the available number of colors.