3 c# byte unity-game-engine rawimage
我正在尝试将 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);
}
Run Code Online (Sandbox Code Playgroud)
RawImage只是一个渲染Texture分配给其纹理属性的组件。要获取字节数组,您需要先访问它,Texture然后将其转换为Texture2D.
您的 RawImage 组件:
public RawImage rawImage;
Run Code Online (Sandbox Code Playgroud)
获取正在渲染的纹理,然后将其转换为 Texture2D:
Texture2D rawImageTexture = (Texture2D)rawImage.texture;
Run Code Online (Sandbox Code Playgroud)
获取 png 或 jpeg 格式的字节数组:
byte[] pngData = rawImageTexture.EncodeToPNG();
byte[] jpegData = rawImageTexture.EncodeToJPG();
Run Code Online (Sandbox Code Playgroud)
如果您想要 RawImage 的未压缩数据:
Color32[] rawData = rawImageTexture.GetPixels32();
Run Code Online (Sandbox Code Playgroud)
还要将 the 转换Color32[]为字节数组,请参阅此帖子。
| 归档时间: |
|
| 查看次数: |
3081 次 |
| 最近记录: |