主页 > 知识库 > 网络编程 > ASP/.NET >

菜鸟时期的.net笔记[纯代码,慎入](2)

来源:中国IT实验室 作者:佚名 发表于:2013-07-09 13:29  点击:
2.生成缩略图: //生成缩略图 public void CreateThumbnailImage(string sFileSrcPath, string sFileDstPath, int iSizeLimit) { //检测源图片是否存在 if (File.Exists(sFileSrcPath)) { //获取源图片图像 Image i

2.生成缩略图:  //生成缩略图
  public void CreateThumbnailImage(string sFileSrcPath, string sFileDstPath, int iSizeLimit)
  {
  //检测源图片是否存在
  if (File.Exists(sFileSrcPath))
  {
  //获取源图片图像
  Image image = Image.FromFile(sFileSrcPath);
  //定义一个大小结构
  SizeF size = new SizeF(image.Width, image.Height);
  //计算出符合要求的大小
  while (size.Width > iSizeLimit || size.Height > iSizeLimit)
  {
  size.Height /= 1.1F;
  size.Width /= 1.1F;
  }
  //创建缩略图图像
  Bitmap bitmap = new Bitmap(Convert.ToInt16(size.Width), Convert.ToInt16(size.Height));
  //创建缩略图绘图面
  Graphics g = Graphics.FromImage(bitmap);
  //清除整个绘图画面并以透明色填充
  g.Clear(Color.Transparent);
  //定义源图像矩形区域
  Rectangle Srcrect = new Rectangle(0, 0, image.Width, image.Height);
  //定义缩略图矩形区域
  Rectangle Dstrect = new Rectangle(0, 0, bitmap.Width, bitmap.Height);
  //绘制缩略图
  g.DrawImage(image, Dstrect, Srcrect, GraphicsUnit.Pixel);
  //存储为JPEG图片
  bitmap.Save(sFileDstPath, ImageFormat.Jpeg);
  //释放对象
  g.Dispose();
  image.Dispose();
  bitmap.Dispose();
  }
  } //测试代码2: dh.CreateThumbnailImage(@"D:/C#/CheckCode.jpg",@"D:/C#/Check_small.jpg",200);
  3.从远程地址下载文件的例子
  class NetworkHelper{
  //缓冲区大小
  private int iBufferSize = 10240;
  //从远程HTTP地址下载文件到本地
  public void DownloadFile(string sFileUrl, string sFileSavePath)
  {
  //建立HTTP请求
  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sFileUrl);
  //获取HTTP响应
  HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  //获取HTTP响应流
  Stream stream = response.GetResponseStream();
  //创建文件获取文件流
  FileStream fs = File.Create(sFileSavePath);
  //创建缓冲区
  byte[] buffer = new byte[iBufferSize];
  //从HTTP响应流中循环读取字节写入文件流
  int readCount = 0;
  while ((readCount = stream.Read(buffer, 0, iBufferSize)) > 0)
  fs.Write(buffer, 0, readCount);
  //释放资源
  fs.Close();
  stream.Close();
  }} //测试代码:NetworkHelper nh=new NetworkHelper ();nh.DownloadFile ("www.XXX.com/test.rar",@"D:/Test/test.rar");
  4.另一个有关文件下载的例子
  //Response.Clear();用于清除缓冲区,如果不这么做,页面中的HTML文本也会被认为是文件的一部分一起输出Response.Clear();//Response.ContentType这个属性是用来设置输出流的类型,服务器送 给客户端的数据包类型可以是text/html文本,也可以是gif/jpeg图形文件,所以每次传输前,我们都必须告知客户端将要传输的文件类型,一般 默认情况下为"text/html"类型。Response.ContentType = "application/octet=stream";//Response.AddHeader这个方法用于输出一些描述信息,比如文件名,文件是下 载还是直接打开。在这里,attachment表示下载,如果改为inline就是直接打开了,前提是客户端安装了相应文件的处理程序。 //HttpUtility.UrlEncode()用来格式化文件名编码方式,确保文件名是中文的时候不会出现乱码。 Response.AddHeader("Content-Disposition", "attachment;FileName=" + HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8));//Response.WriteFile用于输出文件,但是由于系统会把文件的所有内容一起 装入WEB服务器的 内存中,如果文件过大就会出现服务器内存不够的错误。对于下载大文件可以参考微软的 KnowledgeBaseResponse.WriteFile(strFilePhysicalPath);//Response.End方法最后把 缓冲区所有内容向客户端输出,结束页面执行。Response.End();

有帮助
(0)
0%
没帮助
(0)
0%