asp.net 对网络图片剪切显示(前提:不保存图片)

最近做网页,遇到这样个情况:

对在线的一张图片进行处理,剪切之后再显示到页面上。


其实对图片进行crop或者cut很简单,关键是cut之后的图片不能保存到本地,直接显示到页面或者其他的地方。


1. 从网络加载图片(Bitmap以流的方式加载)

string imgUrl = "http://...gif";

WebClient wc = new WebClient();

Stream stream = wc.OpenRead(imgUrl);           

CropImg(stream, x, y, width, height );


2. Cropimg

private void CropImg(Stream stream, int x, int y, int width, int height)
        {
            using (Bitmap orginal = new Bitmap(stream))
            {
                using (Bitmap newimage = new Bitmap(width, height))
                {
                    using (Graphics newgraphics = Graphics.FromImage(newimage))
                    {
                        newgraphics.DrawImage(orginal, 0, 0, new Rectangle(x, y, width, height), GraphicsUnit.Pixel);
                        newgraphics.Flush();
                    }
                    /*newimage.Save("c://out.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);*/
                    /*MemoryStream ms = new MemoryStream();*/
                    /*newimage.Save(ms, ImageFormat.Jpeg); */
                    Response.ContentType = "image/Jpeg";
                    newimage.Save(Response.OutputStream, ImageFormat.Jpeg);
                }
            }
        }

以流的形式输出,避免了保存图片引起的不必要的麻烦。

你可能感兴趣的:(asp.net 对网络图片剪切显示(前提:不保存图片))