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();
            }
        }
  • 相关阅读:
    javascript实现网页分享至朋友圈功能
    Vue中全局过滤器期与局部过滤器期的使用
    vue中添加与删除,关键字搜索
    vue生命周期
    4种常用的Ajax请求方式
    CSS 基础总结
    BEM思想之彻底弄清BEM语法
    学习前端过程中用到的资料
    深入理解,函数声明、函数表达式、匿名函数、立即执行函数、window.onload的区别.
    html基础
  • 原文地址:https://www.cnblogs.com/lovecherry/p/433629.html
Copyright © 2011-2022 走看看