zoukankan      html  css  js  c++  java
  • 高清方法生成缩略图函数

     1         /// <summary>
     2         /// 生成缩略图函数
     3         /// </summary>
     4         /// <param name="width">原始图片的宽度</param>
     5         /// <param name="height">原始图片的高度</param>
     6         /// <param name="left">水印字符的生成位置</param>
     7         /// <param name="right">水印字符的生成位置</param>
     8         /// <param name="picpath">原图的所在路径</param>
     9         /// <param name="picthumpath">生成缩略图的所在路径</param>
    10         public void GetThumbnailImage(int intThumbWidth, int intThumbHeight, int left, int right, string picpath, string picthumpath)
    11         {
    12             System.Drawing.Image oldimage = System.Drawing.Image.FromFile(picpath);
    13           
    14             //原图宽度和高度 
    15             int width = oldimage.Width;
    16             int height = oldimage.Height;
    17             int smallWidth;
    18             int smallHeight;
    19 
    20             //获取第一张绘制图的大小,(比较 原图的宽/缩略图的宽  和 原图的高/缩略图的高) 
    21             if (((decimal)width) / height <= ((decimal)intThumbWidth) / intThumbHeight)
    22             {
    23                 smallWidth = intThumbWidth + 5;
    24                 smallHeight = intThumbWidth * height / width + 5;
    25             }
    26             else
    27             {
    28                 smallWidth = intThumbHeight * width / height + 5;
    29                 smallHeight = intThumbHeight + 5;
    30             }
    31 
    32 
    33             //新建一个图板,以最小等比例压缩大小绘制原图 
    34             using (System.Drawing.Image bitmap = new System.Drawing.Bitmap(smallWidth, smallHeight))
    35             {
    36                 //绘制中间图 
    37                 using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap))
    38                 {
    39                     //高清,平滑 
    40                     g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
    41                     g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
    42                     g.Clear(Color.Black);
    43                     g.DrawImage(
    44                     oldimage,
    45                     new System.Drawing.Rectangle(0, 0, smallWidth, smallHeight),
    46                     new System.Drawing.Rectangle(0, 0, width, height),
    47                     System.Drawing.GraphicsUnit.Pixel
    48                     );
    49                 }
    50                 //新建一个图板,以缩略图大小绘制中间图 
    51                 using (System.Drawing.Image bitmap1 = new System.Drawing.Bitmap(intThumbWidth, intThumbHeight))
    52                 {
    53                     //绘制缩略图 
    54                     using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap1))
    55                     {
    56                         //高清,平滑 
    57                         g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
    58                         g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
    59                         g.Clear(Color.Black);
    60                         int lwidth = (smallWidth - intThumbWidth) / 2;
    61                         int bheight = (smallHeight - intThumbHeight) / 2;
    62                         g.DrawImage(bitmap, new Rectangle(0, 0, intThumbWidth, intThumbHeight), lwidth, bheight, intThumbWidth, intThumbHeight, GraphicsUnit.Pixel);
    63                         g.Dispose();
    64                         bitmap1.Save(picthumpath, System.Drawing.Imaging.ImageFormat.Jpeg);
    65                         bitmap1.Dispose();
    66                     }
    67                 }
    68             }
    69 
    70             oldimage.Dispose();
    71         }
  • 相关阅读:
    python模块总结(一)命令行解析模块argparse
    TCP(一)三次握手和四次挥手
    容器网络(四)vxlan
    容器网络(三)容器间通信
    kvm虚拟化(二)网络虚拟化
    KVM虚拟化(一)创建虚拟机
    数字操作 —— 9_ 回文数
    数字操作 —— 8_字符串转换整数(atoi)
    数字操作 —— 7_整数反转
    字符串操作 —— 763_划分字母区间
  • 原文地址:https://www.cnblogs.com/EasyLive2006/p/3265787.html
Copyright © 2011-2022 走看看