Xna: Texture2D dari file png

9

Saya membuat game berbasis ubin, dan saya bekerja untuk dukungan tileset. Saya mencoba membuatnya sehingga Texture2D ditetapkan sebagai file PNG yang dipilih. Saya dapat melakukan ini tanpa masalah f Saya memuat gambar ke dalam pipa konten, tetapi editor level akan digunakan oleh orang-orang tanpa akses ke pipa konten. Bagaimana cara saya melakukan ini?

Raj
sumber

Jawaban:

4

Anda dapat memanggil metode statis Texture2D.FromStream . Cukup berikan aliran ke file png. Saya cukup yakin ini berfungsi tanpa pipa konten.

Michael Coleman
sumber
4

Agak terlambat untuk Raj tetapi untuk orang lain ...

        string PictureLocation = @"D:\PictureName.png";
        Texture2D Newtexture =  LoadPicture(PictureLocation);

        string PictureDestination = @"D:\NewPictureName.png";
        SavePicture(PictureDestination, Newtexture);

    public static Texture2D LoadPicture(string Filename)
    {
        FileStream setStream = File.Open(Filename, FileMode.Open);
        Texture2D NewTexture = Texture2D.FromStream(graphicsDevice, setStream);
        setStream.Dispose();
        return NewTexture;
    }

    public static void SavePicture(string Filename, Texture2D TextureToSave)
    {
        FileStream setStream = File.Open(Filename, FileMode.Create);
        StreamWriter writer = new StreamWriter(setStream);
        TextureToSave.SaveAsPng(setStream, TextureToSave.Width, TextureToSave.Height);
        setStream.Dispose();
    }

Membaca dan menyimpan di lokasi baru untuk PNG dan JPEG (saya pikir mereka satu-satunya yang didukung, tetapi itu seharusnya cukup bagus :).

Semoga ini bisa membantu orang lain dengan masalah yang sama. Stoort.

Stoort
sumber