zoukankan      html  css  js  c++  java
  • C# 图片裁剪代码

            /// <summary>
            /// 缩小裁剪图片
            /// </summary>
            /// <param name="int_Width">要缩小裁剪图片宽度</param>
            /// <param name="int_Height">要缩小裁剪图片长度</param>
            /// <param name="input_ImgUrl">要处理图片路径</param>
            /// <param name="out_ImgUrl">处理完毕图片路径</param>
            public void ImgReduceCutOut(int int_Width, int int_Height, string input_ImgUrl, string out_ImgUrl)
            {
                // ===上传标准图大小===
                int int_Standard_Width = 160;
                int int_Standard_Height = 160;
    
                int Reduce_Width = 0; // 缩小的宽度
                int Reduce_Height = 0; // 缩小的高度
                int CutOut_Width = 0; // 裁剪的宽度
                int CutOut_Height = 0; // 裁剪的高度
                int level = 100; //缩略图的质量 1-100的范围
    
                // ===获得缩小,裁剪大小===
                if (int_Standard_Height * int_Width / int_Standard_Width > int_Height)
                {
                    Reduce_Width = int_Width;
                    Reduce_Height = int_Standard_Height * int_Width / int_Standard_Width;
                    CutOut_Width = int_Width;
                    CutOut_Height = int_Height;
                }
                else if (int_Standard_Height * int_Width / int_Standard_Width < int_Height)
                {
                    Reduce_Width = int_Standard_Width * int_Height / int_Standard_Height;
                    Reduce_Height = int_Height;
                    CutOut_Width = int_Width;
                    CutOut_Height = int_Height;
                }
                else
                {
                    Reduce_Width = int_Width;
                    Reduce_Height = int_Height;
                    CutOut_Width = int_Width;
                    CutOut_Height = int_Height;
                }
    
                // ===通过连接创建Image对象===
                System.Drawing.Image oldimage = System.Drawing.Image.FromFile(Server.MapPath(input_ImgUrl));
    
                // ===缩小图片===
                System.Drawing.Image thumbnailImage = oldimage.GetThumbnailImage(Reduce_Width, Reduce_Height, new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);
                Bitmap bm = new Bitmap(thumbnailImage);
    
                // ===处理JPG质量的函数===
                ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
                ImageCodecInfo ici = null;
                foreach (ImageCodecInfo codec in codecs)
                {
                    if (codec.MimeType == "image/jpeg")
                        ici = codec;
                }
                EncoderParameters ep = new EncoderParameters();
                ep.Param[0] = new EncoderParameter(Encoder.Quality, (long)level);
    
                //bm.Save(Server.MapPath("2.jpg"), ici, ep);
    
                // ===裁剪图片===
                Rectangle cloneRect = new Rectangle(0, 0, CutOut_Width, CutOut_Height);
                PixelFormat format = bm.PixelFormat;
                Bitmap cloneBitmap = bm.Clone(cloneRect, format);
    
                // ===保存图片===
                cloneBitmap.Save(Server.MapPath(out_ImgUrl), ici, ep);
            }
  • 相关阅读:
    JavaScript编码规范
    查询Sqlserver数据库死锁的一个存储过程
    Sql Server 阻塞的常见原因和解决办法
    在Repeater中使用DropDownList的方法
    springboot集成jsp
    springboot 集成 freemarker
    No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? idea maven 打包报错问题解决
    手动安装sublimeText3插件
    Sublime text 3搭建Python开发环境及常用插件安装
    qemu通过控制台向虚拟机输入组合键
  • 原文地址:https://www.cnblogs.com/gc2013/p/3949165.html
Copyright © 2011-2022 走看看