@plac

Не работает метод LoadRawTextureData. Что делать?

Решил вместо медленного LoadImage использовать LoadRawTextureData, но не могу понять как его использовать. Побайтово получаю изображение JPG, создаю текстуру и пытаюсь записать в Texture2D, в результате просто шумы в изображении. Что то делаю не так, подскажите пожалуйста, лучше с исправленным примером.
Игрался с форматами ( TextureFormat.ARGB32) не выходит, лишь меняются шумы.
Таким образом нужно читать изображения JEPG, PNG и JPG.
Большое спасибо!

private async Task<Sprite> TestWorkAsync(string value)
    {
        byte[] result = File.ReadAllBytes(value);
        Texture2D resultPhoto = new Texture2D(1024, 768, TextureFormat.ARGB32, false);
        resultPhoto.LoadRawTextureData(result);
        resultPhoto.Apply();

        //resultPhoto.LoadImage(result);
        //Texture2D resultTexture = this.ScaleTexture(resultPhoto, resultPhoto.width / 2, resultPhoto.height / 2); // Уменьшаем текстуру

        //Destroy(resultPhoto); // Уничтожаем данные
        result = new byte[0];

        Sprite preview = Sprite.Create(resultPhoto, new Rect(0.0f, 0.0f, resultPhoto.width, resultPhoto.height), new Vector2(1.0f, 1.0f), 100.0f);
        return preview;
    }
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Туда надо подавать не jpeg файл, а сырые данные текстуры. Раз вы объявили текстуру ARGB32, то значит у вас должно быть 4 байта на каждый пиксель.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы