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



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

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);

}

RawImage只是渲染指定给其纹理属性的Texture的组件。要获得字节数组,您需要首先访问该Texture,然后将其强制转换为Texture2D

您的RawImage组件:

public RawImage rawImage;

获取正在渲染的纹理,然后将其投射到Texture2D:

Texture2D rawImageTexture = (Texture2D)rawImage.texture;

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

byte[] pngData = rawImageTexture.EncodeToPNG();
byte[] jpegData = rawImageTexture.EncodeToJPG();

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

Color32[] rawData = rawImageTexture.GetPixels32();

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

最新更新