pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

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的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
主站蜘蛛池模板: 东莞工厂厂房装修_无尘车间施工_钢结构工程安装-广东集景建筑装饰设计工程有限公司 | 锥形螺带干燥机(新型耙式干燥机)百科-常州丰能干燥工程 | 变色龙PPT-国内原创PPT模板交易平台 - PPT贰零 - 西安聚讯网络科技有限公司 | 陕西鹏展科技有限公司| 小型高低温循环试验箱-可程式高低温湿热交变试验箱-东莞市拓德环境测试设备有限公司 | 掺铥光纤放大器-C/L波段光纤放大器-小信号光纤放大器-合肥脉锐光电技术有限公司 | 阻垢剂-反渗透缓蚀阻垢剂厂家-山东鲁东环保科技有限公司 | 无菌实验室规划装修设计-一体化实验室承包-北京洁净净化工程建设施工-北京航天科恩实验室装备工程技术有限公司 | 威实软件_软件定制开发_OA_OA办公系统_OA系统_办公自动化软件 | 水性漆|墙面漆|木器家具漆|水漆涂料_晨阳水漆官网 | 玖容气动液压设备有限公司-气液增压缸_压力机_增压机_铆接机_增压器 | 水厂自动化-水厂控制系统-泵站自动化|控制系统-闸门自动化控制-济南华通中控科技有限公司 | 真空吸污车_高压清洗车厂家-程力专用汽车股份有限公司官网 | 哈尔滨治「失眠/抑郁/焦虑症/精神心理」专科医院排行榜-京科脑康免费咨询 一对一诊疗 | 森旺-A级防火板_石英纤维板_不燃抗菌板装饰板_医疗板 | 华东师范大学在职研究生招生网_在职研究生招生联展网 | 钛合金标准件-钛合金螺丝-钛管件-钛合金棒-钛合金板-钛合金锻件-宝鸡远航钛业有限公司 | 深圳市简易检测技术有限公司 | 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 欧版反击式破碎机-欧版反击破-矿山石料破碎生产线-青州奥凯诺机械 | 防火卷帘门价格-聊城一维工贸特级防火卷帘门厂家▲ | 高效节能电机_伺服主轴电机_铜转子电机_交流感应伺服电机_图片_型号_江苏智马科技有限公司 | 常州企业采购平台_常州MRO采购公司_常州米孚机电设备有限公司 | 电动不锈钢套筒阀-球面偏置气动钟阀-三通换向阀止回阀-永嘉鸿宇阀门有限公司 | 无痕胶_可移胶_无痕双面胶带_可移无痕胶厂家-东莞凯峰 | 联系我们-腾龙公司上分客服微信19116098882 | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 | 东莞工作服_东莞工作服定制_工衣订做_东莞厂服 | Honsberg流量计-Greisinger真空表-气压计-上海欧臻机电设备有限公司 | PE一体化污水处理设备_地埋式生活污水净化槽定制厂家-岩康塑业 | 砂磨机_立式纳米砂磨机_实验室砂磨机-广州儒佳化工设备厂家 | 中国产业发展研究网 - 提供行业研究报告 可行性研究报告 投资咨询 市场调研服务 | 即用型透析袋,透析袋夹子,药敏纸片,L型涂布棒-上海桥星贸易有限公司 | 废气处理设备-工业除尘器-RTO-RCO-蓄热式焚烧炉厂家-江苏天达环保设备有限公司 | 北钻固控设备|石油钻采设备-石油固控设备厂家 | 电脑刺绣_绣花厂家_绣花章仔_织唛厂家-[源欣刺绣]潮牌刺绣打版定制绣花加工厂家 | 船用锚链|专业锚链生产厂家|安徽亚太锚链制造有限公司 | 成都茶楼装修公司 - 会所设计/KTV装修 - 成都朗煜装饰公司 | 浙江红酒库-冰雕库-气调库-茶叶库安装-医药疫苗冷库-食品物流恒温恒湿车间-杭州领顺实业有限公司 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 齿轮减速马达一体式_蜗轮蜗杆减速机配电机-德国BOSERL齿轮减速电动机生产厂家 |