Example #1
0
        /// <summary>
        /// 保存高质量的缩略位图
        /// </summary>
        /// <param name="source">源图</param>
        /// <param name="width">缩略位图高</param>
        /// <param name="height">缩略位图宽</param>
        /// <example>
        /// SourceImg.SaveThumbnailBitmap(8, 8, "C:/", "a", "jpg");
        /// </example>
        public static void SaveThumbnailBitmap(this Image source, int width, int height, string directory, string filename, string extension)
        {
            var physicalPath = directory + filename + "." + extension;

            using (var newImage = source.GetThumbnailBitmap(width, height))
            {
                using (var encoderParameters = new EncoderParameters(1))
                {
                    encoderParameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
                    newImage.Save(physicalPath,
                                  ImageCodecInfo.GetImageEncoders()
                                  .Where(x => x.FilenameExtension.Contains(extension.ToUpperInvariant()))
                                  .FirstOrDefault(),
                                  encoderParameters);
                }
            }
        }