国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#根據http和ftp圖片地址獲取對應圖片

2020-01-24 00:36:01
字體:
來源:轉載
供稿:網友

本文實例為大家分享了C#根據http和ftp地址獲取對應圖片的具體代碼,供大家參考,具體內容如下

public class GetBitmapImageClass {  public BitmapSource GetImageHttp(string url,int width)  {   var image = new BitmapImage();   int BytesToRead = 100;   if (!string.IsNullOrEmpty(url))   {    WebRequest request = WebRequest.Create(new Uri(url, UriKind.Absolute));    request.Timeout = -1;    WebResponse response = request.GetResponse();    Stream responseStream = response.GetResponseStream();    BinaryReader reader = new BinaryReader(responseStream);    MemoryStream memoryStream = new MemoryStream();    byte[] bytebuffer = new byte[BytesToRead];    int bytesRead = reader.Read(bytebuffer, 0, BytesToRead);    while (bytesRead > 0)    {     memoryStream.Write(bytebuffer, 0, bytesRead);     bytesRead = reader.Read(bytebuffer, 0, BytesToRead);    }    image.BeginInit();    image.DecodePixelWidth = width;    image.CacheOption = BitmapCacheOption.OnLoad;    memoryStream.Seek(0, SeekOrigin.Begin);    image.StreamSource = memoryStream;    image.EndInit();    image.Freeze();    memoryStream.Close();    reader.Close();    responseStream.Close();    response.Close();   }   return image;  }  public BitmapSource GetImageFtp(string url, int width)  {   var image = new BitmapImage();   if (!string.IsNullOrEmpty(url))   {    FtpWebRequest reqFtp;    reqFtp = (FtpWebRequest)FtpWebRequest.Create(new Uri(url));    reqFtp.Method = WebRequestMethods.Ftp.DownloadFile;    reqFtp.UseBinary = true;    FtpWebResponse response = (FtpWebResponse)reqFtp.GetResponse();    Stream ftpStream = response.GetResponseStream();    MemoryStream mStream = new MemoryStream();    ftpStream.CopyTo(mStream);    mStream.Position = 0;    int length = (int)mStream.Length;    byte[] returnbyte = new byte[length];    mStream.Read(returnbyte, 0, length);    mStream.Close();    ftpStream.Close();    response.Close();    System.IO.MemoryStream stream = new System.IO.MemoryStream(returnbyte);    image.BeginInit();    image.DecodePixelWidth = width;    image.CacheOption = BitmapCacheOption.OnLoad;    stream.Seek(0, SeekOrigin.Begin);    image.StreamSource = stream;    image.EndInit();    image.Freeze();    stream.Close();   }   return image;  }  [DllImport("gdi32.dll", SetLastError = true)]  private static extern bool DeleteObject(IntPtr hObject);  public BitmapSource ToBitmapSource(System.Drawing.Bitmap bmp)  {   try   {    var ptr = bmp.GetHbitmap();    var source = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(     ptr, IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());    DeleteObject(ptr);    return source;   }   catch   {    return null;   }  }  //獲取縮略圖  public BitmapSource GetBitImage(string imageLink)  {   //"http://172.17.1.231:8083/3050273262379466760/2017/05/28/09/340800100999/09163448402.jpg?fid=1267520"   if (imageLink.StartsWith("http://"))   {    return GetImageHttp(imageLink,200);   }   //ftp格式的   else if (imageLink.StartsWith("ftp://"))   {    return GetImageFtp(imageLink, 200);   }  }  //獲取原圖  public BitmapSource GetHightBitImage(string imageLink)  {   //"http://172.17.1.231:8083/3050273262379466760/2017/05/28/09/340800100999/09163448402.jpg?fid=1267520"   if (imageLink.StartsWith("http://"))   {    return GetImageHttp(imageLink, 0);   }   //ftp格式的   else if (imageLink.StartsWith("ftp://"))   {    return GetImageFtp(imageLink, 0);   }  } }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永济市| 衡南县| 灵璧县| 通海县| 德化县| 呈贡县| 屏东县| 井冈山市| 贡觉县| 吴堡县| 如东县| 五华县| 施秉县| 翁源县| 南丰县| 昌图县| 东兴市| 萨迦县| 抚顺市| 苍山县| 营山县| 宁河县| 辽阳县| 浮山县| 苏州市| 武陟县| 益阳市| 新化县| 农安县| 延吉市| 郧西县| 长丰县| 女性| 泾阳县| 平南县| 金昌市| 班玛县| 苗栗市| 班玛县| 潜江市| 新邵县|