zoukankan      html  css  js  c++  java
  • C#生成缩略图源码

    先看调用的方法:
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    public partial class test_Default : System.Web.UI.Page
    {
        
    protected void Page_Load(object sender, EventArgs e)
        {
            generalImage();
        }
        
    private void generalImage()
        {
            
    string savePath = @"images/123.jpg";//原图路径
            string smallPath = @"images/small/123.jpg";//要生成的小图
            savePath = Server.MapPath(savePath);//这一步别忘了。
            smallPath = Server.MapPath(smallPath);//同样这里也不要忘了。
            YD.Common.ImageClass imageClass = new YD.Common.ImageClass();
            imageClass.ShowThumbnail(savePath, smallPath, 
    200153);//这样调用
        }
    }
    生成小图的类:
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.IO;
    /// <summary>
    /// ImageClass 的摘要说明
    /// </summary>
    namespace YD.Common
    {
        
    public class ImageClass
        {
            
    public bool ThumbnailCallback()
            {
                
    return false;
            }
            
    public void ShowThumbnail(string oldfile, string newfile, int white, int height)
            {
                System.Drawing.Image image 
    = System.Drawing.Image.FromFile(oldfile);
                
    //获取原图高度和宽度
                int oldh = image.Height;
                
    int oldw = image.Width;
                
    int neww, newh;
                neww 
    = white; newh = height;   //直接设定新图的高宽,,

                
    try
                {
                    System.Drawing.Image.GetThumbnailImageAbort callb 
    = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
                    System.Drawing.Image bt 
    = new System.Drawing.Bitmap(neww, newh);
                    System.Drawing.Graphics gr 
    = System.Drawing.Graphics.FromImage(bt);
                    gr.Clear(Color.White);
                    gr.InterpolationMode 
    = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                    gr.DrawImage(image, 
    new Rectangle(00, neww, newh), 00, oldw, oldh, GraphicsUnit.Pixel);
                    
    switch (oldfile.Substring(oldfile.Length - 3).ToUpper())
                    {
                        
    case "JPG":
                            bt.Save(newfile, ImageFormat.Jpeg);
                            
    break;
                        
    case "GIF":
                            bt.Save(newfile, ImageFormat.Gif);
                            
    break;
                        
    case "PNG":
                            bt.Save(newfile, ImageFormat.Png);
                            
    break;
                        
    default:
                            bt.Save(newfile, ImageFormat.Jpeg);
                            
    break;
                    }
                    gr.Dispose();
                    bt.Dispose();
                    image.Dispose();
                }
                
    catch { }

            }
        }
    }
  • 相关阅读:
    泛型接口(C# 编程指南) From MSDN
    不知道是不是心理作用,我怎么觉得在Fedora下写cnblogs比Windows下快。
    VS.NET 2005真是太好用了!
    写了个打字游戏,可是有问题(C#)
    C#多线程测试
    关于继承的一个小程序
    VS.NET 2008 试用
    基本排序算法及分析(二):冒泡排序
    基本排序算法及分析(三):shell排序
    [导入]一维数组输出杨辉三角形
  • 原文地址:https://www.cnblogs.com/greatverve/p/1517485.html
Copyright © 2011-2022 走看看