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 
            { 
            } 
        } 

  • 相关阅读:
    VS.NET 2005 常用的快捷键
    路径,文件,目录,I/O常见操作汇总
    c#中cookies的存取操作
    ASP.NET AJAX入门系列(1):概述
    RS2008中控件ID冲突问题
    [书名]各种计算机语言的经典书籍
    终于把课件做好了~~
    还是两个数的交换问题
    自制简易图片尺寸调整工具[源]
    被点名了~~~[游戏]
  • 原文地址:https://www.cnblogs.com/rickel/p/639600.html
Copyright © 2011-2022 走看看