C#將上傳圖片壓縮(制作成縮略圖)


1.制成縮略圖方法

/// <summary>
        /// 制作縮略圖
        /// </summary>
        /// <param name="original">圖片對象</param>
        /// <param name="newFileName">新圖路徑</param>
        /// <param name="maxWidth">最大寬度</param>
        /// <param name="maxHeight">最大高度</param>
        public static void ThumbImg(System.Drawing.Image original, string newFileName, int maxWidth, int maxHeight)
        {
            Size newSize = ResizeImage(original.Width, original.Height, maxWidth, maxHeight);
            using (System.Drawing.Image displayImage = new Bitmap(original, newSize))
            {
                try
                {
                    displayImage.Save(newFileName, original.RawFormat);
                }
                finally
                {
                    original.Dispose();
                }
            }
        }

2.進行壓縮過程中,有時會丟失正確的位置信息,需旋轉到正確的位置

/// <summary>
        /// 將圖片旋轉到正確位置
        /// </summary>
        /// <param name="image"></param>
        /// <returns></returns>
        public static void OrientationImage(Image image)
        {
            if (Array.IndexOf(image.PropertyIdList, 274) > -1)
            {
                var orientation = (int)image.GetPropertyItem(274).Value[0];
                switch (orientation)
                {
                    case 1:
                        // No rotation required.
                        break;
                    case 2:
                        image.RotateFlip(RotateFlipType.RotateNoneFlipX);
                        break;
                    case 3:
                        image.RotateFlip(RotateFlipType.Rotate180FlipNone);
                        break;
                    case 4:
                        image.RotateFlip(RotateFlipType.Rotate180FlipX);
                        break;
                    case 5:
                        image.RotateFlip(RotateFlipType.Rotate90FlipX);
                        break;
                    case 6:
                        image.RotateFlip(RotateFlipType.Rotate90FlipNone);
                        break;
                    case 7:
                        image.RotateFlip(RotateFlipType.Rotate270FlipX);
                        break;
                    case 8:
                        image.RotateFlip(RotateFlipType.Rotate270FlipNone);
                        break;
                }
                image.RemovePropertyItem(274);
            }
        }

3.使用上述方法進行圖片處理

public void getImg()
         {
                Image img = Image.FromStream(File.OpenReadStream()); //直接將文件轉為文件流形式
                OrientationImage(img);
                ThumbImg(img, imgroute, 600, 800);  // imgroute指圖片存儲路徑   600 指寬度  800指高度
         }

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM