没有 BitmapData 的 AS3 PNG 编码器

Posted

技术标签:

【中文标题】没有 BitmapData 的 AS3 PNG 编码器【英文标题】:AS3 PNG Encoder without BitmapData 【发布时间】:2020-06-09 07:55:02 【问题描述】:

简单地说,我正在寻找一种 PNG 编码器,它可以将 RGB/RGBA ByteArray 直接转换为 PNG 文件,该文件也存储在 ByteArray 中,而根本不使用 BitmapData 类。我目前正在开发一个 ~v4.0 Scaleform Gfx 项目——它不支持任何 Get/SetPixel 方法。

【问题讨论】:

这个? help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/… 【参考方案1】:

如果您使用的是 Scaleform 4.0,那么您最好的解决方案可能是通过 ExternalInterface 调用将有问题的 ByteArray 绑定到 C++ 中的 GFx::Value。配合GFx::Value,可以使用ReadByteArrayWriteByteArray等。

Scaleform 4.0 默认内置了一个 PNG 读取器/写入器,Scaleform::Render::PNG::FileReader/FileWriter。这些基本上只是包装libpng 功能。您可以使用Scaleform::MemoryFile 包装传入/传出字节,以便他们可以使用此接口。

或者,如果您想使用BitmapData API,您可以升级到 Scaleform 的最终版本,如果您拥有有效的许可,则可以从 Autodesk 支持免费获得。

【讨论】:

以上是关于没有 BitmapData 的 AS3 PNG 编码器的主要内容,如果未能解决你的问题,请参考以下文章

ActionScript 3 AS3 Pixelate bitmapData

ActionScript 3 带有Masked DisplayObject的AS3 bitmapData.draw()

createjs 的 bitmapdata类

使用您自己的 AMS,如何在 RTMP 流上使用 BitmapData.draw() 而没有安全异常?

as3.0 制作图片的大体流程

FLASH AS3图片内存清除方法