zoukankan      html  css  js  c++  java
  • 生成缩略图方法

    using System;
    
    using System.Collections.Generic;
    
    using System.Text;
    
    namespace DataInput
    
    {
    
        using System.IO;
    
        using System.Drawing;
    
        using System.Drawing.Imaging;
    
        using System.Windows.Forms;
    
        /// <summary>
    
        /// 图片处理类
    
        /// 1、生成缩略图片或按照比例改变图片的大小和画质
    
        /// 2、将生成的缩略图放到指定的目录下
    
        /// </summary>
    
        public class ImageClass
    
        {
    
            public Image ResourceImage;
    
            private int ImageWidth;
    
            private int ImageHeight;
    
            public string ErrMessage;
    
            /// <summary>
    
            /// 类的构造函数
    
            /// </summary>
    
            /// <param name="ImageFileName">图片文件的全路径名称</param>
    
            public ImageClass(string ImageFileName)
    
            {
    
                try
    
                {
    
                    ResourceImage = Image.FromFile(ImageFileName);
    
                    ErrMessage = "";
    
                }
    
                catch
    
                {
    
                    ResourceImage = Image.FromFile(Application.StartupPath + "\null.jpg");
    
                }
    
            }
    
            public bool ThumbnailCallback()
    
            {
    
                return false;
    
            }
    
            /// <summary>
    
            /// 生成缩略图重载方法1,返回缩略图的Image对象
    
            /// </summary>
    
            /// <param name="Width">缩略图的宽度</param>
    
            /// <param name="Height">缩略图的高度</param>
    
            /// <returns>缩略图的Image对象</returns>
    
            public Image GetReducedImage(int Width, int Height)
    
            {
    
                try
    
                {
    
                    Image ReducedImage;
    
                    Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback);
    
                    ReducedImage = ResourceImage.GetThumbnailImage(Width, Height, callb, IntPtr.Zero);
    
                    ResourceImage.Dispose();
    
                    return ReducedImage;
    
                }
    
                catch (Exception e)
    
                {
    
                    ErrMessage = e.Message;
    
                    return null;
    
                }
    
            }
    
            /// <summary>
    
            /// 生成缩略图重载方法2,将缩略图文件保存到指定的路径
    
            /// </summary>
    
            /// <param name="Width">缩略图的宽度</param>
    
            /// <param name="Height">缩略图的高度</param>
    
            /// <param name="targetFilePath">缩略图保存的全文件名,(带路径),参数格式:D:Images ilename.jpg</param>
    
            /// <returns>成功返回true,否则返回false</returns>
    
            public bool GetReducedImage(int Width, int Height, string targetFilePath)
    
            {
    
                try
    
                {
    
                    Image ReducedImage;
    
                    Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback);
    
                    ReducedImage = ResourceImage.GetThumbnailImage(Width, Height, callb, IntPtr.Zero);
    
                    ReducedImage.Save(@targetFilePath, ImageFormat.Jpeg);
    
                    ReducedImage.Dispose();
    
                    return true;
    
                }
    
                catch (Exception e)
    
                {
    
                    ErrMessage = e.Message;
    
                    return false;
    
                }
    
            }
    
            /// <summary>
    
            /// 生成缩略图重载方法3,返回缩略图的Image对象
    
            /// </summary>
    
            /// <param name="Percent">缩略图的宽度百分比 如:需要百分之80,就填0.8</param> 
    
            /// <returns>缩略图的Image对象</returns>
    
            public Image GetReducedImage(double Percent)
    
            {
    
                try
    
                {
    
                    Image ReducedImage;
    
                    Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback);
    
                    ImageWidth = Convert.ToInt32(ResourceImage.Width * Percent);
    
                    ImageHeight = Convert.ToInt32(ResourceImage.Width * Percent);
    
                    ReducedImage = ResourceImage.GetThumbnailImage(ImageWidth, ImageHeight, callb, IntPtr.Zero);
    
                    return ReducedImage;
    
                }
    
                catch (Exception e)
    
                {
    
                    ErrMessage = e.Message;
    
                    return null;
    
                }
    
            }
    
            /// <summary>
    
            /// 生成缩略图重载方法4,返回缩略图的Image对象
    
            /// </summary>
    
            /// <param name="Percent">缩略图的宽度百分比 如:需要百分之80,就填0.8</param> 
    
            /// <param name="targetFilePath">缩略图保存的全文件名,(带路径),参数格式:D:Images ilename.jpg</param>
    
            /// <returns>成功返回true,否则返回false</returns>
    
            public bool GetReducedImage(double Percent, string targetFilePath)
    
            {
    
                try
    
                {
    
                    Image ReducedImage;
    
                    Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback);
    
                    ImageWidth = Convert.ToInt32(ResourceImage.Width * Percent);
    
                    ImageHeight = Convert.ToInt32(ResourceImage.Width * Percent);
    
                    ReducedImage = ResourceImage.GetThumbnailImage(ImageWidth, ImageHeight, callb, IntPtr.Zero);
    
                    ReducedImage.Save(@targetFilePath, ImageFormat.Jpeg);
    
                    ReducedImage.Dispose();
    
                    return true;
    
                }
    
                catch (Exception e)
    
                {
    
                    ErrMessage = e.Message;
    
                    return false;
    
                }
    
            }
    
        }
    
    }
  • 相关阅读:
    夜生活
    LOST
    TMD
    玩AJAX要先知道这些
    水漫金陵
    家装
    JAVA里面的小名堂
    朋友值多少钱
    猪八戒
    冬枣
  • 原文地址:https://www.cnblogs.com/bile/p/3302892.html
Copyright © 2011-2022 走看看