久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

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

這篇文章主要為大家詳細介紹了C#根據http和ftp圖片地址獲取對應圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了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#63;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#63;fid=1267520"
   if (imageLink.StartsWith("http://"))
   {
    return GetImageHttp(imageLink, 0);
   }
   //ftp格式的
   else if (imageLink.StartsWith("ftp://"))
   {
    return GetImageFtp(imageLink, 0);
   }
  }

 }

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

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

這篇文章主要為大家詳細介紹了C# SendMail發送郵件功能實現,具有一定的參考價值,感興趣的小伙伴們可以參考一下
這篇文章主要介紹了C#實現的SQL備份與還原功能,結合具體實例形式分析了C#操作數據庫實現SQL備份與還原相關的控件、SQL連接、文件等操作技巧,需要的朋友可以參考下
這篇文章主要介紹了C#使用checkedListBox1控件鏈接數據庫的方法,結合具體實例形式分析了數據庫的創建及checkedListBox1控件連接數據庫的相關操作技巧,需要的朋友可以參考下
這篇文章主要介紹了C#實現的sqlserver操作類,結合具體實例形式分析了C#針對sqlserver數據庫進行連接、查詢、更新、關閉等相關操作技巧,需要的朋友可以參考下
這篇文章主要為大家詳細介紹了HttpHelper類的使用方法,HttpHelper類及調用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
這篇文章主要為大家詳細介紹了C#多線程數組模擬socket的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
主站蜘蛛池模板: 久久精品亚洲一区二区三区浴池 | 九九福利 | 天天拍天天操 | 午夜成人免费视频 | 国产亚洲久 | 欧美一区二区三区精品免费 | 精品久久久久久久久久久久久久 | 国产区一区二区三区 | 国产高清免费在线 | 九九99精品 | 国产在线一 | 国内精品免费久久久久软件老师 | 中文字幕一区在线观看视频 | 一区二区三区免费看 | 久久久网 | 精品产国自在拍 | 一区视频在线免费观看 | 日韩一二区 | 午夜一级做a爰片久久毛片 精品综合 | h视频免费在线观看 | 很黄很污的网站 | 国产1区在线 | 亚洲香蕉在线视频 | 成人亚洲综合 | 国精久久 | 欧美日韩国产一区二区 | 国产精品毛片 | 国产日韩一区 | 自拍偷拍精品 | 亚洲精品国产成人 | 请别相信他免费喜剧电影在线观看 | 黄网站免费在线 | 欧美一区二区三区在线 | 一区二区精品 | 夜夜夜夜夜夜曰天天天 | 精品久久久久久久久久久 | 波多野结衣在线观看一区二区三区 | 自拍视频在线观看 | 国产日韩精品在线 | 成人免费一区二区 | 婷婷久久五月天 |