преобразовать изображение и сохранить как байтовый массив - PullRequest
0 голосов
/ 13 ноября 2018

Я хотел бы преобразовать простую картинку в байтовый массив и затем сохранить этот массив в .txt Я пытался сделать это, но я потерял .. Я не могу преобразовать это ... Я хотел бы иметь массив, и в месте, где цифры в моем массиве должны появиться 1. Если нет ничего, должно быть 0.

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Image image = Image.FromFile(@"D:\Stackimage\1.png");
            var ms = new MemoryStream();

            image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);

            var bytes = ms.ToArray();



            string[] tab = new string[1000000];

            for (int i = 0; i < 1000000; i++)
            {

                tab[i] = "" + bytes;
            }
            MessageBox.Show("start");
            using (System.IO.StreamWriter writer = new System.IO.StreamWriter(@"D:\data.txt"))
            {
                foreach (string elem in tab)
                {
                    writer.WriteLine(elem);
                }
            }
            MessageBox.Show("stop");
        }

Я добавляю сюда свое изображение. Моя картинка

1 Ответ

0 голосов
/ 13 ноября 2018

Я вижу, что вы пытаетесь сделать. Аналогичный подход используется при рендеринге ландшафта с помощью карты heightMap. Идея состоит в том, чтобы отобразить изображение в виде серой шкалы в текстовый файл, который, в свою очередь, используется для генерации высоты ландшафта.

В вашем случае вы можете просто отобразить его как 0 и 1 (где 1 - цвет ваших препятствий).

Затем вы можете загрузить отображенный текстовый файл в двумерный массив, который будет вашим видом с высоты птичьего полета.

Когда бот движется по сцене, вы можете определить, может ли он безопасно двигаться, проверяя текущую позицию на карте 2D-массива.

Надеюсь, это поможет.

...