zoukankan      html  css  js  c++  java
  • 图片批量修改大小

    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Data;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Common;
    using DBAccess;
    using NPOI.OpenXml4Net.OPC.Internal;
    using MyNewClass.Common;
    using gigadeExcel.Comment;

    namespace EmsDepRelation
    {
        class Program
        {

            static string connectionString;//獲取鏈接字符串
            static IDBAccess _dbAccess;
            private static readonly string PicturefilePath = System.Configuration.ConfigurationManager.AppSettings["PicfilePath"].ToString();
            private static readonly string PicturesuccessPath = System.Configuration.ConfigurationManager.AppSettings["SuccessPicfilePath"].ToString();
            private static readonly string PictureFailPath = System.Configuration.ConfigurationManager.AppSettings["FailPicfilePath"].ToString();//圖片不符合合適
            private static readonly string GroupCode = System.Configuration.ConfigurationManager.AppSettings["GroupCode"].ToString();
            private static readonly string EmailTile = System.Configuration.ConfigurationManager.AppSettings["EmailTitle"].ToString();
            static void Main(string[] args)
            {
                ConfigHelper fighelper = new ConfigHelper();
                connectionString = fighelper.GetConnString();
                _dbAccess = DBFactory.getDBAccess(DBType.MySql, connectionString);
                try
                {
                    if (string.IsNullOrEmpty(PicturefilePath) || string.IsNullOrEmpty(PicturesuccessPath))
                    {
                        Console.WriteLine("請檢查配置文件中PicturefilePath,PicturesuccessPath是否存在");
                    }
                    else
                    {
                        #region 如果路徑不存在則創建
                        if (!Directory.Exists(PicturefilePath))
                        {
                            Console.WriteLine("請確定圖片文件是否存在在路徑" + PicturefilePath + "中!");
                            Directory.CreateDirectory(PicturefilePath);
                        }
                        if (!Directory.Exists(PicturefilePath))
                        {
                            Directory.CreateDirectory(PicturefilePath);
                        }
                        if (!Directory.Exists(PicturesuccessPath))
                        {
                            Directory.CreateDirectory(PicturesuccessPath);
                        }
                        if (!Directory.Exists(PictureFailPath))
                        {
                            Directory.CreateDirectory(PictureFailPath);
                        }
                        #endregion
                        DirectoryInfo dir = new DirectoryInfo(PicturefilePath);
                        FileInfo[] files = dir.GetFiles("*.jpg");
                        if (files.Count() >= 1)
                        {
                            foreach (FileInfo file in files)
                            {
                                string tempname = PicturesuccessPath;
                                string path = file.Name;//文件全名稱
                                string fullpath = file.FullName;
                                GetThumbnail(PicturefilePath + path, PictureFailPath, 1000, 1000);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("圖片處理功能:Program/Main" + ex.Message);
                    Console.ReadKey();
                }
            }
            /// <summary>
            /// 改變圖片信息
            /// </summary>
            /// <param name="serverImagePath">要改變大小的圖片(路徑名稱+圖片名稱)</param>
            /// <param name="thumbnailImagePath">改變后的圖片(路徑名稱+圖片名稱)</param>
            /// <param name="width">改變后的寬度</param>
            /// <param name="height">改變后的高度</param>
            static void GetThumbnail(string serverImagePath, string thumbnailImagePath, int width, int height)
            {
                System.Drawing.Image serverImage = System.Drawing.Image.FromFile(serverImagePath);
                //画板大小
                int towidth = width;
                int toheight = height;
                //缩略图矩形框的像素点
                int x = 0;
                int y = 0;
                int ow = serverImage.Width;
                int oh = serverImage.Height;
                if (ow > oh)
                {
                    toheight = serverImage.Height * width / serverImage.Width;
                }
                else
                {
                    towidth = serverImage.Width * height / serverImage.Height;
                }
                //新建一个bmp图片
                System.Drawing.Image bm = new System.Drawing.Bitmap(width, height);
                //新建一个画板
                System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bm);
                //设置高质量插值法
                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
                //设置高质量,低速度呈现平滑程度
                g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                //清空画布并以透明背景色填充
                g.Clear(System.Drawing.Color.White);
                //在指定位置并且按指定大小绘制原图片的指定部分
                g.DrawImage(serverImage, new System.Drawing.Rectangle((width - towidth) / 2, (height - toheight) / 2, towidth, toheight),
                    0, 0, ow, oh,
                    System.Drawing.GraphicsUnit.Pixel);
                try
                {
                    //以jpg格式保存缩略图
                    bm.Save(thumbnailImagePath, System.Drawing.Imaging.ImageFormat.Jpeg);
                }
                catch (System.Exception e)
                {
                    throw e;
                }
                finally
                {
                    serverImage.Dispose();
                    bm.Dispose();
                    g.Dispose();
                }
            }

        }
    }

  • 相关阅读:
    Codeforces-754D Fedor and coupons
    LightOJ
    LightOJ
    LightOJ
    LightOJ
    POJ
    HDU
    HDU
    HDU-2159
    方法的重写
  • 原文地址:https://www.cnblogs.com/sdya/p/4648422.html
Copyright © 2011-2022 走看看