首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将UI RawImage转换为字节数组

如何将UI RawImage转换为字节数组
EN

Stack Overflow用户
提问于 2018-11-09 01:55:54
回答 1查看 3.4K关注 0票数 3

我正在尝试将RawImage转换为数组字节(bytes[]),但RawImage没有encondePNG或其他东西来为RawImage获取字节,你知道如何获得字节数组吗?

代码语言:javascript
复制
public class RegistryScreen : UIScreen
{

Texture2D pickedImage;
public RawImage[] getRawImageProfile;

public void ChangeIconImage()
{        
    PickImageFromGallery();

    //WebService
    mygetImageProfileRequestData = new getImageProfileRequestData();

    //this is the problem 
    mygetImageProfileRequestData.image = getRawImageProfile[0].texture; 

}

public void PickImageFromGallery(int maxSize = 1024)
{
    NativeGallery.GetImageFromGallery((path) =>
    {
        if (path != null)
        {
            // Create Texture from selected image
            pickedImage = NativeGallery.LoadImageAtPath(path, maxSize);

            ////Sust. texture in image(Sprite)
            for (int i = 0; i < getRawImageProfile.Length; i++)
            {
                getRawImageProfile[i].texture = pickedImage;      
            }
        } 


        Debug.Log("getRawImage: " + getRawImageProfile[0].texture);            

    }, maxSize: maxSize);



}
EN

回答 1

Stack Overflow用户

发布于 2018-11-09 02:11:07

RawImage只是一个呈现分配给其纹理属性的Texture的组件。要获得字节数组,您需要首先访问该Texture,然后将其强制转换为Texture2D

您的RawImage组件:

代码语言:javascript
复制
public RawImage rawImage;

获取它正在渲染的纹理,然后将其强制转换为Texture2D:

代码语言:javascript
复制
Texture2D rawImageTexture = (Texture2D)rawImage.texture;

获取png或jpeg格式的字节数组:

代码语言:javascript
复制
byte[] pngData = rawImageTexture.EncodeToPNG();
byte[] jpegData = rawImageTexture.EncodeToJPG();

如果您想要RawImage的未压缩数据:

代码语言:javascript
复制
Color32[] rawData = rawImageTexture.GetPixels32();

要将Color32[]转换为字节数组,请参阅this post。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53213537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档