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();
            }
        }
  • 相关阅读:
    c# 字符串中某个词出现的次数及索引
    c# 冒泡排序
    WCF 高级知识
    Web Api基础知识
    Web Services基础知识
    WCF Demo
    IIS部署WCF常见错误
    IIS部署WCF
    IIS部署WCF错误
    WCF基础知识
  • 原文地址:https://www.cnblogs.com/lovecherry/p/433629.html
Copyright © 2011-2022 走看看