Xna: Texture2D từ tệp png


9

Tôi đang tạo một trò chơi dựa trên gạch và tôi đang làm việc để hỗ trợ các ô. Tôi đang cố gắng làm cho nó để Texture2D được đặt làm tệp PNG được chọn. Tôi có thể làm điều này mà không gặp vấn đề gì. Tôi tải hình ảnh vào đường ống nội dung, nhưng trình chỉnh sửa cấp độ sẽ được mọi người sử dụng mà không cần truy cập vào đường ống nội dung. Làm thế nào để tôi đi về làm điều này?

Câu trả lời:


4

Bạn có thể gọi phương thức tĩnh Texture2D.FromStream . Chỉ cần truyền nó một luồng đến tệp png. Tôi khá chắc chắn rằng nó hoạt động mà không có đường ống nội dung.


4

Một chút muộn cho Raj nhưng cho bất cứ ai khác ...

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

Đọc và lưu ở một vị trí mới cho PNG và JPEG (Tôi nghĩ rằng chúng chỉ được hỗ trợ, nhưng điều đó là đủ tốt :).

Hy vọng điều này sẽ giúp bất cứ ai khác với một vấn đề tương tự. Stoort.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.