将等大小的图像网格拼接在一起

时间:2019-07-18 14:40:54

标签: c# .net image-processing

我有一个由26 x 13的图像组成的网格,每个图像均为512px x 512px。所有都是.jpgs。是否有一种库或简单的方法将这些图像拼接成一个大的.jpg文件?我看了一下,只发现对于我需要做的事情过于复杂的库。

感谢您的帮助。

编辑:我找到了问题here的解决方案。

1 个答案:

答案 0 :(得分:0)

我设法用一些相当简单的代码做到了

Image[,] images = new Image[26, 13];
        Parallel.For(0, 26, x => {
            Parallel.For(0, 13, y =>{
                using (WebClient client = new WebClient())
                    images[x, y] = Image.FromStream(new MemoryStream(client.DownloadData(Get.TileURL(panoID, x, y))));
            });
        });

        using (Bitmap result = new Bitmap(26 * 512, 13 * 512))
        {
            for (int x = 0; x < 26; x++)
                for (int y = 0; y < 13; y++)
                    using (Graphics g = Graphics.FromImage(result))
                        g.DrawImage(images[x, y], x * 512, y * 512);
            result.Save(file, format);
        }

并行化不是必需的,仅仅是为了加快速度。