zoukankan      html  css  js  c++  java
  • C# Image exaple

     
    public void Save(Bitmap image, int quality, string filePath, int startx, int endy)
            {
                // Get the image's original width and height
                int originalWidth = image.Width;
                int originalHeight = image.Height;
    
                // To preserve the aspect ratio
                float ratioX = (float)startx / (float)originalWidth;
                float ratioY = (float)endy / (float)originalHeight;
                float ratio = Math.Min(ratioX, ratioY);
    
                // New width and height based on aspect ratio
                int newWidth = (int)(originalWidth * ratio);
                int newHeight = (int)(originalHeight * ratio);
    
                // Convert other formats (including CMYK) to RGB.
                Bitmap newImage = new Bitmap(newWidth, newHeight, PixelFormat.Format24bppRgb);
    
                // Draws the image in the specified size with quality mode set to HighQuality
                using (Graphics graphics = Graphics.FromImage(newImage))
                {
                    graphics.CompositingQuality = CompositingQuality.HighQuality;
                    graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
                    graphics.SmoothingMode = SmoothingMode.HighQuality;
                    graphics.DrawImage(image, 0, 0, newWidth, newHeight);
                }
    
                // Get an ImageCodecInfo object that represents the JPEG codec.
                ImageCodecInfo imageCodecInfo = this.GetEncoderInfo(ImageFormat.Jpeg);
    
                // Create an Encoder object for the Quality parameter.
                Encoder encoder = Encoder.Quality;
    
                // Create an EncoderParameters object. 
                EncoderParameters encoderParameters = new EncoderParameters(1);
    
                // Save the image as a JPEG file with quality level.
                EncoderParameter encoderParameter = new EncoderParameter(encoder, quality);
                encoderParameters.Param[0] = encoderParameter;
                string filepath = filePath + DateTime.Now.ToString("yyyyMMddHHmmss") + DateTime.Now.Millisecond.ToString();
                newImage.Save(filepath + "psvv.png", imageCodecInfo, encoderParameters);
            }
    
    
    
            /// <summary>
            /// Method to get encoder infor for given image format.
            /// </summary>
            /// <param name="format">Image format</param>
            /// <returns>image codec info.</returns>
            private ImageCodecInfo GetEncoderInfo(ImageFormat format)
            {
                return ImageCodecInfo.GetImageDecoders().SingleOrDefault(c => c.FormatID == format.Guid);
            }
  • 相关阅读:
    火狐浏览器处理jquery中:header的问题。
    兼容IE与FF的childNodes问题(ff childNodes)
    前端开发的几个辅助类工具
    固定 vs. 流动 vs. 弹性:哪种布局更适合你?
    由浅入深漫谈margin属性
    Firefox 的 Jetpack 扩展案例分析:Gmail 邮件提醒
    jQuery性能优化
    浅谈.NET中可用的定时器和计时器【上篇】
    现有分布式技术(socket、.net remoting、asp.net webservice、WSE、ES)和wcf的比较及优势
    Mono for Android 4.2初探
  • 原文地址:https://www.cnblogs.com/ifutan/p/3708620.html
Copyright © 2011-2022 走看看