【问题标题】:convert image and save as byte array转换图像并保存为字节数组
【发布时间】:2019-04-16 02:48:32
【问题描述】:

我想将简单的图片转换为字节数组,然后将此数组保存到 .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");
        }

我在这里添加我的图像。 My picture

【问题讨论】:

  • 为什么你有一个循环来设置"" + bytes?您不应该将字节列表转换为字符串列表吗?
  • 你的所作所为并没有多大意义。你为什么要这个?你最终会得到一个不可读的文本文件。
  • 您是否尝试将字节编码为某种可读格式?你想要什么格式?
  • 我要编写一个带有碰撞检测功能的小型移动机器人。我有 512 条线(它将是一个机器人传感器)和 2 个在不同地方的图​​形(障碍物)。我有 1000 张不同人物位置的图片。然后我必须检查人物在哪里(他们用线切割的地方)。一般来说,我需要知道直线障碍在哪里,圆圈障碍在哪里,我需要这些数据,因为我会教神经网络。

标签: c# arrays file-conversion


【解决方案1】:

我明白你在做什么。类似的方法用于使用 heightMap 进行地形渲染。这个想法是将图像作为灰度映射到文本文件中,然后用于生成地形的高度。

在您的情况下,您可以将其映射为 0 和 1(其中 1 是障碍物的颜色)。

然后您可以将映射的文本文件上传到一个二维数组中,这将是您的地图鸟瞰图。

当机器人在场景中移动时,您可以通过检查 2D 阵列地图上的当前位置来检测它是否可以安全移动。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多