• 生成高品质的缩略图


    转自:http://hi.baidu.com/zhaoyf/blog/item/06d6b812175371cec2fd7812.html

    高品质,就是指定Graphic的
    InterpolationMode属性为HighQualityBicubic

    public static void myGetThumbnailImage(string SourceFile, string strSavePathFile, int ThumbWidth, int ThumbHeight, string BgColor) 
        { 
            System.Drawing.Image oImg 
    = System.Drawing.Image.FromFile(SourceFile); 
            
    //小图 
            int intwidth, intheight; 
            
    if (oImg.Width > oImg.Height) 
            { 
                
    if (oImg.Width > ThumbWidth) 
                { 
                    intwidth 
    = ThumbWidth; 
                    intheight 
    = (oImg.Height * ThumbWidth) / oImg.Width; 
                } 
                
    else 
                { 
                    intwidth 
    = oImg.Width; 
                    intheight 
    = oImg.Height; 
                } 
            } 
            
    else 
            { 
                
    if (oImg.Height > ThumbHeight) 
                { 
                    intwidth 
    = (oImg.Width * ThumbHeight) / oImg.Height; 
                    intheight 
    = ThumbHeight; 
                } 
                
    else 
                { 
                    intwidth 
    = oImg.Width; 
                    intheight 
    = oImg.Height; 
                } 
            } 
            
    //构造一个指定宽高的Bitmap 
            Bitmap bitmay = new Bitmap(intwidth, intheight); 
            Graphics g 
    = Graphics.FromImage(bitmay); 
            Color myColor; 
            
    if (BgColor == null
                myColor 
    = Color.FromName("white"); 
            
    else 
                myColor 
    = Color.FromName(BgColor); 
            
    //用指定的颜色填充Bitmap 
            g.Clear(myColor); 
            g.InterpolationMode 
    = InterpolationMode.HighQualityBicubic;  
            
    //开始画图 
            g.DrawImage(oImg, new Rectangle(00, intwidth, intheight), new Rectangle(00, oImg.Width, oImg.Height), GraphicsUnit.Pixel); 
            bitmay.Save(strSavePathFile, System.Drawing.Imaging.ImageFormat.Jpeg); 
            g.Dispose(); 
            bitmay.Dispose(); 
            oImg.Dispose(); 
            
    //删除源图 
            try 
            { 
                File.Delete(SourceFile); 
            } 
            
    catch 
            { 
            } 
        } 

  • 相关阅读:
    ActionBar认知
    CSS动画-多列
    CSS3动画效果
    GreenDao数据库框架
    Handler介绍
    AsyncTask介绍
    Android中IntentService的原理及使用
    English interview!
    第六章 结构
    结构体中定义函数指针
  • 原文地址:https://www.cnblogs.com/rickel/p/639600.html
Copyright © 2020-2023  润新知