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


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

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

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


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:


is working but the picture is not keeping the ratio.


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.