zoukankan      html  css  js  c++  java
  • C# 根据URL返回HTML_根据URL获取图片信息/缩略图

    /// <summary>
    /// 根据URL 返回HTML
    /// </summary>
    private List<string> GetHtmlByUrl(string Url)
    {
    WebClient client = new WebClient();
    byte[] page = client.DownloadData(Url);
    string content = System.Text.Encoding.UTF8.GetString(page);
    List<string> _list = GetImgUrlByHtmlText(content);
    return _list;
    }
    /---------------------根据URL--获取图片信息--------------/
    
    //后缀名
    string _suffix = _imgurls[i].Substring(_imgurls[i].Length - 4);
    //图片文件名
    string _imageInputTitle = "云鼎宝贝" + DateTime.Now.ToString("yyyyMMddhhmmss" + i) + _suffix;
    System.Net.HttpWebRequest webRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(_imgurls[i]);
    webRequest.Method = "GET";
    System.Net.HttpWebResponse webResponse = (System.Net.HttpWebResponse)webRequest.GetResponse();
    //获取图片保存到流
    System.IO.Stream _stream = webResponse.GetResponseStream();
    //保存到图片
    System.Drawing.Image _image = System.Drawing.Image.FromStream(_stream);
    
    // int _picwidth = _imgWidth.Length <= 0 ? _image.Width : Convert.ToInt32(_imgWidth);
    // int _picheight = _imgHeight.Length <= 0 ? _image.Height : Convert.ToInt32(_imgHeight);
    
    //根据参数形成缩略图
    //_image = _image.GetThumbnailImage(_image.Width, _image.Height, null, IntPtr.Zero);
    
    //实例化MemoryStream
    System.IO.MemoryStream _ImageMem = new System.IO.MemoryStream();
    
    //实例化图片格式
    //ImageFormat _imgFormat = new ImageFormat(new Guid());
    
    //根据图片后缀名判断类型.
    // if (_suffix.ToLower().Equals(".jpg")) _imgFormat = ImageFormat.Jpeg;
    // if (_suffix.ToLower().Equals(".png")) _imgFormat = ImageFormat.Png;
    // if (_suffix.ToLower().Equals(".gif")) _imgFormat = ImageFormat.Gif;
    
    //保存
    _image.Save(_ImageMem, _image.RawFormat);
    //转换为字节流
    byte[] _ImageBytes = _ImageMem.GetBuffer();
    //释放资源
    _image.Dispose();
    //关闭流
    _stream.Close();
    
     
     
    
    /------------图片生成缩略图--------------?
    
    #region  生成缩略图  
      ///<summary>  
      /// 生成缩略图  
      /// </summary>  
      /// <param name="originalImagePath">源图路径(物理路径)</param>  
      /// <param name="thumbnailPath">缩略图路径(物理路径)</param>  
      /// <param name="width">缩略图宽度</param>  
      /// <param name="height">缩略图高度</param>  
      /// <param name="mode">生成缩略图的方式</param>      
      public  void MakeThumbnail(string originalImagePath,  string thumbnailPath, int width, int height, string mode out string outthumbnailPath)  
      {  
       System.Drawing.Image originalImage =System.Drawing.Image.FromFile(originalImagePath);  
                 
       int towidth = width;  
       int toheight = height;  
             
       int x = 0;  
       int y = 0;  
       int ow = originalImage.Width;  
       int oh = originalImage.Height;         
       switch (mode)  
       {          
        case "HW"://指定高宽缩放(可能变形)                  
         break;  
        case "W"://指定宽,高按比例                      
         toheight = originalImage.Height * width/originalImage.Width;  
         break;  
        case "H"://指定高,宽按比例  
         towidth = originalImage.Width * height/originalImage.Height;                      
         break;          
        case "Cut"://指定高宽裁减(不变形)                  
         if((double)originalImage.Width/(double)originalImage.Height > (double)towidth/(double)toheight)  
         {  
          oh = originalImage.Height;  
          ow = originalImage.Height*towidth/toheight;  
          y = 0;  
          x = (originalImage.Width - ow)/2;  
         }  
         else  
         {  
          ow = originalImage.Width;  
          oh = originalImage.Width*height/towidth;  
          x = 0;  
          y = (originalImage.Height - oh)/2;  
         }  
         break;                      
        default :  
         break;  
       }      
                 
       //新建一个bmp图片  
       System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth,toheight); 
       //新建一个画板  
       Graphics g = System.Drawing.Graphics.FromImage(bitmap); 
       //设置高质量插值法  
       g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; 
       //设置高质量,低速度呈现平滑程度  
       g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; 
       //清空画布并以透明背景色填充  
       g.Clear(Color.Transparent);         
       //在指定位置并且按指定大小绘制原图片的指定部分  
       g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight),  
        new Rectangle(x, y, ow,oh),  
        GraphicsUnit.Pixel); 
       try  
       {              
        //以jpg格式保存缩略图  
        bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);  
        outthumbnailPath=thumbnailPath; 
       }  
       catch(System.Exception e)  
       {  
        throw e;  
       }  
       finally  
       {  
        originalImage.Dispose();  
        bitmap.Dispose();                          
        g.Dispose();  
       }  
      } 
  • 相关阅读:
    Assimp对FBX文件中geometric transformations的处理
    VSM
    WSL安装
    [p1880][NOI1995]石子合并
    【日常】集训总结
    【模板】背包
    【济南集训】20191006解题报告
    [P1516]青蛙的约会
    【模板】ST表
    【济南集训】20191001解题报告
  • 原文地址:https://www.cnblogs.com/mingxuantongxue/p/3680866.html
Copyright © 2011-2022 走看看