Memory Leaks when play pictures from local card using Sprite.Create

Hi,

I created on Android a picture player that shows some pictures from the SD card.
The code is like that:

private Start()
{
    _texture2D = new Texture2D(1024, 1024, TextureFormat.RGBA4444, false);
    _texture2D.Compress(true);
}

private IEnumerator LoadPicture(string file)
{
    WWW www = new WWW("file://" + file);
    yield return www;
    www.LoadImageIntoTexture(_texture2D);

    var sprite = Sprite.Create(_texture2D, new Rect(0, 0, _texture2D.width, _texture2D.height), Vector2.zero);
    gameObject.GetComponent<Image>().sprite = sprite;

    www.Dispose();
}

The WWW it’s not giving me any leaks because I test it independently so it’s ok.
So how can I make this work? After 5 minutes the app crash and exit.

The solution to use:

gameObject.GetComponent<CanvasRenderer>().SetTexture(_texture);

is working but the picture is not keeping the ratio.

Thanks,
Sorin

Set the preserveAspect property of the Image component to true, either in the inspector or in the Start/Awake method in your code. Then it should work.

Btw. I am not at a computer so i cannot test this right now.