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