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

    转自: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 
            { 
            } 
        } 

  • 相关阅读:
    最近出现很多数据库被攻击案例,在数据库中的文本型字段中加入了script代码
    深入线程,实现自定义的SynchronizationContext
    云计算 (转载)
    VS 2008和.NET 3.5 Beta2新特性介绍(转载)
    js对文字进行编码涉及3个函数
    Sharepoint,MOSS,多语言Webpart (.net2.0)
    Silverlight Toolkit
    Silverlight 2.0正式版下周发布
    搭建Silverlight2.0开发环境(转载)
    如何通过使用 SQL Server 中的 Detach 和 Attach 函数将 SQL Server 数据库移到新位置
  • 原文地址:https://www.cnblogs.com/rickel/p/639600.html
Copyright © 2011-2022 走看看