Xna: Texture2D de un archivo png

9

Estoy haciendo un juego basado en mosaicos, y estoy trabajando para el soporte de los mosaicos. Estoy tratando de hacerlo para que un Texture2D se establezca como un archivo PNG elegido. Puedo hacer esto sin ningún problema si cargo la imagen en la canalización de contenido, pero el editor de niveles será utilizado por personas sin acceso a la canalización de contenido. ¿Cómo voy a hacer esto?

Raj
fuente

Respuestas:

4

Puede llamar al método estático Texture2D.FromStream . Simplemente páselo una secuencia al archivo png. Estoy bastante seguro de que funciona sin la canalización de contenido.

Michael Coleman
fuente
4

Un poco tarde para Raj pero para cualquier otra persona ...

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

Leer y guardar en una nueva ubicación para PNG y JPEG (creo que son los únicos compatibles, pero eso debería ser lo suficientemente bueno :).

Espero que esto ayude a alguien más con un problema similar. Stoort

Stoort
fuente