zoukankan      html  css  js  c++  java
  • 生成高质量缩略图

    using System.Drawing;
    using System.Drawing.Drawing2D;
    using System.Drawing.Imaging;

        private void CreateThumbnail(string sFileSrcPath, string sFileDstPath, int iSizeLimit)
        {
            
    if (File.Exists(sFileSrcPath))
            {
                System.Drawing.Image image 
    = System.Drawing.Image.FromFile(sFileSrcPath) as System.Drawing.Bitmap;

                System.Drawing.SizeF size 
    = new System.Drawing.SizeF(image.Width, image.Height);

                
    while (size.Width > iSizeLimit || size.Height > iSizeLimit)
                {
                    size.Height 
    /= 1.1F;

                    size.Width 
    /= 1.1F;
                }

                System.Drawing.Image bitmap 
    = new System.Drawing.Bitmap(Convert.ToInt16(size.Width), Convert.ToInt16(size.Height));

                System.Drawing.Graphics g 
    = System.Drawing.Graphics.FromImage(bitmap);

                g.SmoothingMode 
    = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

                g.Clear(Color.Transparent);

                Rectangle rect 
    = new Rectangle(00, bitmap.Width, bitmap.Height);

                g.DrawImage(image, rect, 
    new System.Drawing.Rectangle(00, image.Width, image.Height), System.Drawing.GraphicsUnit.Pixel);

                ImageCodecInfo myImageCodecInfo;

                Encoder myEncoder;

                EncoderParameter myEncoderParameter;

                EncoderParameters myEncoderParameters;

                myImageCodecInfo 
    = ImageCodecInfo.GetImageEncoders()[0];

                myEncoder 
    = Encoder.Quality;

                myEncoderParameters 
    = new EncoderParameters(1);

                myEncoderParameter 
    = new EncoderParameter(myEncoder, 100L); // 0-100

                myEncoderParameters.Param[
    0= myEncoderParameter;

                bitmap.Save(sFileDstPath, myImageCodecInfo, myEncoderParameters);

                myEncoderParameter.Dispose();

                myEncoderParameters.Dispose();

                image.Dispose();

                bitmap.Dispose();

                g.Dispose();
            }
        }
  • 相关阅读:
    Mac上的抓包工具Charles[转载]
    js 实现自动调出键盘
    Mac下git安装(使用Xcode)
    weinre远程调试
    Css Sprite Demo
    sublime 常用快捷键
    css 盒子模型 以及 box-sizing属性
    jquery中bind,live,delegate,on的区别
    模拟实现库函数的atoi、atof和itoa
    常见排序算法
  • 原文地址:https://www.cnblogs.com/lovecherry/p/433629.html
Copyright © 2011-2022 走看看