首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

多张二进制图,怎么显示在一个页面上

2013-09-05 
多张二进制图,如何显示在一个页面上?System.Drawing.Image MyImage System.Drawing.Image.FromStream(ne

多张二进制图,如何显示在一个页面上?


System.Drawing.Image MyImage = System.Drawing.Image.FromStream(new MemoryStream(二进制图));
MyImage.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);


目前通过这种方式只能每次显示一张。
我想实现的是,一个页面同时显示多张。
[解决办法]
//合并图片
        public Bitmap MergerImg(Bitmap[] maps, System.Web.UI.WebControls.RepeatDirection RepeatDirection)
        {
            if (maps.Length == 0)
                throw new Exception("图片数不能够为0");

            int _width = 0;
            int _height = 0;
            for (int i = 0; i < maps.Length; i++)
            {
                if (RepeatDirection == System.Web.UI.WebControls.RepeatDirection.Horizontal)
                {
                    _width += maps[i].Width;
                    if (maps[i].Height > _height)
                    {
                        _height = maps[i].Height;
                    }
                }
                else


                {
                    _height += maps[i].Height;
                    if (maps[i].Width > _width)
                    {
                        _width = maps[i].Width;
                    }
                }
            }
            //创建要显示的图片对象,根据参数的个数设置宽度
            Bitmap backgroudImg = new Bitmap(_width, _height);
            Graphics g = Graphics.FromImage(backgroudImg);

            //清除画布,背景设置为白色
            int len = maps.Length;
            g.Clear(System.Drawing.Color.White);
            int x = 0;
            for (int j = 0; j < len; j++)
            {
                if (RepeatDirection == System.Web.UI.WebControls.RepeatDirection.Horizontal)
                {
                    g.DrawImage(maps[j], x, 0, maps[j].Width, maps[j].Height);
                    x = x + maps[j].Width;
                }
                else
                {


                    g.DrawImage(maps[j], 0, x, maps[j].Width, maps[j].Height);
                    x = x + maps[j].Height;
                }
            }
            g.Dispose();
            return backgroudImg;
        }

热点排行