Unity3d конвертирует Texture2d в растровый формат - PullRequest
0 голосов
/ 09 декабря 2018

Я попытался сделать это, но, к сожалению, у меня не получается, не зная, что я делаю неправильно.

private void CreateMovie(List<Texture2D> textures, string fileName, int frameRate)
{
    var writer = new AviWriter(fileName + ".avi")
    {
        FramesPerSecond = frameRate,
        EmitIndex1 = true
    };

    var stream = writer.AddVideoStream();
    stream.Width = _images[0].width;
    stream.Height = _images[0].height;
    stream.Codec = KnownFourCCs.Codecs.Uncompressed;
    stream.BitsPerPixel = BitsPerPixel.Bpp32;

    int count = 0;

    while (count < textures.Count)
    {
        byte[] byteArray = textures[count].GetRawTextureData();
        stream.WriteFrame(false, byteArray, 0, byteArray.Length);
        count++;
    }

    writer.Close();
}

Как только я записываю байты в файл и пытаюсь открыть его, я получаю файл в неизвестном формате.

1 Ответ

0 голосов
/ 09 декабря 2018

Можете ли вы опубликовать свой код для записи в текстуру?

Чтобы преобразовать вашу текстуру в другой формат, вам нужно будет создать новую текстуру с нужным форматом, а затем записать данные в текстуру.

Используйте следующий конструктор: public Texture2D(int width, int height, TextureFormat textureFormat = TextureFormat.RGBA32, bool mipChain = true, bool linear = false);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...