【问题标题】:How to convert System.IO.Stream into a Texture in Unity for Android?如何在 Unity for Android 中将 System.IO.Stream 转换为纹理?
【发布时间】:2017-03-06 19:15:43
【问题描述】:

我正在 Unity 中构建客户端 Android 应用程序,当它从 AWS S3 服务器下载 jpg 时,结果以 System.IO.Stream 的形式返回。

但是,我对 Mono 和 .Net 的了解有限,这意味着我正在努力弄清楚如何将这个 System.IO.Stream 数据块转换为 Unity 中的纹理,然后我可以在场景中的四边形上进行设置.

我在网上看到了一些很有前途的代码示例,例如:var img = Bitmap.FromStream(stream); 但据我所知,Unity for Android 不支持 System.Drawing.Bitmap - 有人有什么建议吗?

提前致谢!

(我用来从 AWS S3 下载的确切示例代码是 GetObject() 函数,可以在此处找到 http://docs.aws.amazon.com/mobile/sdkforunity/developerguide/s3.html,但在他们的示例中,他们使用 System.IO.StreamReader 仅适用于读取文本不是图像的字节数据)

【问题讨论】:

    标签: c# android unity3d amazon-s3 mono


    【解决方案1】:

    您正在寻找来自 Texture2D 类的 LoadImage 函数。该函数将PNG/JPG图像字节数组转换为纹理。

    Texture2D tex = new Texture2D(2, 2);
    tex.LoadImage(stream);
    

    stream 变量必须是来自互联网/AWS S3 服务的字节数组 (byte[])。

    【讨论】:

    • 感谢@Programmer!您使用 LoadImage() 函数的建议结合这个问题的答案解决了它:stackoverflow.com/questions/3434007/…。我能够将 Amazon.Runtime.Internal.Util.MD5Stream 转换为 byte[],转换为 Texture2D!
    猜你喜欢
    • 2011-05-18
    • 1970-01-01
    • 2012-06-02
    • 2013-05-20
    • 2018-06-09
    • 1970-01-01
    • 2017-12-09
    • 1970-01-01
    相关资源
    最近更新 更多