合并多张图像到一张

    public static class ImageUtil
    {public static void MergeImages(List<string> imageFileNames, string finalImageName, ImageFormat imageFormat)
        {
            using (var file = File.OpenWrite(finalImageName))
            {
                int width = 0, height = 0;
                for (int i = 0; i < imageFileNames.Count(); i++)
                {
                    using (Image tempImg = Image.FromFile(imageFileNames[i]))
                    {
                        height += tempImg.Height;
                        width = width > tempImg.Width ? width : tempImg.Width;
                    }
                }

                using (Bitmap b = new Bitmap(width, height))
                {
                    using (Graphics g = Graphics.FromImage(b))
                    {
                        g.CompositingMode = CompositingMode.SourceCopy;
                        int x = 0, y = 0;
                        for (int j = 0; j < imageFileNames.Count(); j++)
                        {
                            using (Image currentImg = Image.FromFile(imageFileNames[j]))
                            {
                                g.DrawImageUnscaled(currentImg, x, y);
                                y += currentImg.Height;
                            }
                        }
                        b.Save(file, imageFormat);
                    }
                }
            }
        }
    }

 

posted @ 2024-05-14 17:47  业荒于嬉  阅读(7)  评论(0编辑  收藏  举报