Как я могу позволить пользователю рисовать (например, MS Paint) изображение в заданном пространстве (50x50) и сохранять это изображение как текстуру 2D? XNA

Я думал о том, чтобы создать форму окна с пространством 50x50 где-нибудь на ней (растровое изображение?) И заставить пользователя рисовать (например, MS Paint) внутри квадрата. Когда пользователь закончит, изображение можно сохранить, нажав кнопку «Сохранить», и оно будет обновлено в Game1 (для целей столкновения в моей игре). Я видел здесь несколько руководств о том, как рисовать на экране, например, в MS Paint, но я не могу понять, как СОХРАНИТЬ это изображение как Texture2D/Rectangle. И как мне получить растровое изображение в форме Windows?


person Emily    schedule 12.04.2013    source источник


Ответы (1)


Чтобы сохранить растровое изображение в формате png:

private void SaveBmpAsPNG(Bitmap bm)
{
    bm.Save(@"c:\button.png", ImageFormat.Png);
}

Чтобы записать texture2d в файл:

using (Stream stream = File.OpenWrite("picture.png"))
{
    texture.SaveAsPng(stream, texture.Width, texture.Height);
}

Чтобы прочитать .png в texture2d:

using(Stream stream = File.OpenRead("picture.png"))
{
   texture = Texture2D.FromStream(GraphicsDevice, stream);
}
person Colton    schedule 12.04.2013