java - 将字节数组从 ActionScript 转换为 Java 中的图像并保存

标签 java actionscript-3 arrays

我是一名 .NET 开发人员,但我遇到的问题与 .NET 无关
即使我的问题听起来很微不足道,请记住这一点。

这是我的问题:

我们在浏览器中有一个 swf,它与 java 扩展进行通信
它使用 Smartfox Server 完成(用于 MMO 应用程序)

我们从 swf 中抓取屏幕的一部分作为操作脚本 (3) 中的“字节数组”。 在 Java 中,我们调用一个函数将 ByteArray 转换为 Image,然后保存它。

我们的 Java 开发人员遇到了错误

java.lang.illegalArgumentException

当java函数执行时。

基本上,我想知道的是:

如何在 Java 中从 ActionScript 接受对象类型字节数组?
在 ActionScript 中映射到字节数组的 Java 对象类型是什么?
我敢说转换部分很简单。

更新:

ActionScript 部分中的代码

public function savePhoto(uName:String, ba:ByteArray, descr:String):void{
    var obj:Object = {};
    obj.arr = ba;
    obj.desc = descr;
    sfsConnectobj.photoSectionSave(obj,"save");
}

public function photoSectionSave(targetObject:Object,type:String) {
    sfs.sendXtMessage("trialjava", "save", targetObject);
}

第一个函数调用 Java 中的 SmartFox 扩展。 扩展名是“Trialjava.js”

接受该函数的Java代码是

public void handleRequest(String cmd, ActionscriptObject ao, User u, int fromRoom)
{
    try {
        ActionscriptObject arr = ao.getObj("arr");
        String dirName="C:\\";
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            ObjectOutputStream oos;
            oos = new ObjectOutputStream(bos);
            oos.writeObject(ao.getObj("arr"));
            oos.flush();
            oos.close();
            bos.close();
            byte [] data = bos.toByteArray();
            BufferedImage imag=ImageIO.read(new ByteArrayInputStream(data));
            ImageIO.write(imag, "jpg", new File(dirName,"snap.jpg"));

    } 
    catch (IOException e) {
        // TODO Auto-generated catch block
        System.out.println("Array reading not succesful. Error is: "+e);
    }
}

似乎在通过 java 检索对象时存在一个小不匹配。

现在错误不同了。

Array reading not succesful. Error is: java.io.NotSerializableException: it.goto andplay.smartfoxserver.lib.ActionscriptObject

问候,
纳维尼

最佳答案

flash.utils.ByteArray 映射到 Java 的 byte[] 类型。

关于java - 将字节数组从 ActionScript 转换为 Java 中的图像并保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3116017/

相关文章:

java - NullPointerException 我无法解决

php - 流交互 As3 -> PHP -> Mysql -> C++

python - 将给定向量 (B) 的每个值舍入为 A 中最接近的值

java - 使用 Java 在文件中进行正则表达式搜索

java - 如何为.net应用程序制作javaservice?

apache-flex - 如何在 Flex4 中重新渲染 DropDownList 的 itemRenderer?

actionscript-3 - ENTER_FRAME 事件超过 ENTER_FRAME 事件

javascript - Angular $scope.$watch - 根据 ng-model/length 创建数组和总数

javascript - 在更正拼写错误并重新提交后验证 javascript 中的用户输入不会脱离 else 构造

java - Apache Ignite 持久性问题/警告