Xna: Texture2D aus einer PNG-Datei


9

Ich mache ein Kachel-basiertes Spiel und arbeite für die Unterstützung von Kachelsätzen. Ich versuche es so zu machen, dass eine Texture2D als ausgewählte PNG-Datei festgelegt wird. Ich kann dies ohne Probleme tun, wenn ich das Bild in die Inhaltspipeline lade, aber der Ebeneneditor wird von Personen ohne Zugriff auf die Inhaltspipeline verwendet. Wie mache ich das?

Antworten:



4

Ein bisschen spät für Raj, aber für alle anderen ...

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

Einlesen und Speichern an einem neuen Ort für PNG und JPEG (ich denke, sie werden nur unterstützt, aber das sollte gut genug sein :).

Hoffe, das hilft allen anderen mit einem ähnlichen Problem. Stoort.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.