- Home /
Question by
jtok4j · Sep 14, 2018 at 10:15 PM ·
texture2dimagerendertextureformat
What am I missing? Saving EXR results in a properly sized blank/transparent EXR Image file.
I'm working on loading a picture (JPG, PNG, etc) into the scene, displaying on a plane, and saving it in a different format using a button. In particular, the code for saving images as EXR format, saves an image with the same dimensions, but no pixel values (image is blank). What am I missing here?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
public class LoadImageOntoTexture : MonoBehaviour
{
public TextAsset imageAsset;
int imagewidth;
int imageheight;
public void Start()
{
}
public void LoadtheImage()
{
Texture2D tex = new Texture2D(2, 2);
tex.LoadImage(imageAsset.bytes);
GetComponent<Renderer>().material.mainTexture = tex;
imagewidth = tex.width;
imageheight = tex.height;
}
Above code is for loading and displaying an image.
Below code is to save the image as an EXR file to disk.
public void MakeAEXRFile()
{
Texture2D tex = new Texture2D(imagewidth, imageheight, TextureFormat.RGBAHalf, false,true);
byte[] bytes = tex.EncodeToEXR(Texture2D.EXRFlags.None);
File.WriteAllBytes(Application.dataPath + "/../SavedScreenEXR.exr", bytes);
Object.DestroyImmediate(tex);
}
I feel as if I'm missing something to set/clarify the pixels or write them to the image before saving... Thanks in advance for your thoughts. Keep on Creating!
Comment