zoukankan      html  css  js  c++  java
  • C# 生成缩略图、转换图片大小

    转载自:http://www.wxzzz.com/1413.html

    该方法可以将现有路径中的一个图片文件转换为指定大小的图片。

    如果你是Image对象需要转换呢,可以自己更改下这个方法是很简单的,删掉部分代码即可。

    /// <summary>
            /// 生成缩略图
            /// </summary>
            /// <param name="localImagePath">图片地址</param>
            /// <param name="thumbnailImagePath">缩略图地址</param>
            /// <param name="width">图片宽度</param>
            /// <param name="height">图片高度</param>
            /// <param name="p"></param>
            public static void GetThumbnail(string localImagePath, string thumbnailImagePath, int width, int height)
            {
                System.Drawing.Image serverImage = System.Drawing.Image.FromFile(localImagePath);
                //画板大小
                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();
                }
            }
    View Code
  • 相关阅读:
    闭包
    作用域
    既然踏足前端,便要立志成为专家
    D3引擎用正则运算的方式,实现智能设备APP消息推送
    基于ArduinoUNOR3的智能调速风扇
    【一起来玩RTOS系列】之RT-Thread Nano快速创建工程
    MCU代码自动生成工具,全面升级
    ESP8266 SOC门磁系统(一)---短信报警功能
    正点原子F407/103,接入机智云,点亮LED
    机智云5.0推出IoT套件GoKit4.0 可实现物联网应用协同开发
  • 原文地址:https://www.cnblogs.com/lenga/p/6274379.html
Copyright © 2011-2022 走看看