public KalikoImage GetThumbnailImage(int width, int height, ThumbnailMethod method)
        {
            ScalingBase scaleEngine;

            switch (method)
            {
            case ThumbnailMethod.Fit:
                scaleEngine = new FitScaling(width, height);
                break;

            case ThumbnailMethod.Pad:
                scaleEngine = new PadScaling(width, height);
                break;

            default:
                scaleEngine = new CropScaling(width, height);
                break;
            }

            return(Scale(scaleEngine));
        }
Exemple #2
0
        /// <summary>
        /// 缩略图的截图模式是:当原图宽高比按照缩略图时缩放
        /// </summary>
        /// <param name="originalImagePath"></param>
        /// <param name="thumbnailPath"></param>
        /// <param name="extName"></param>
        /// <param name="width"></param>
        /// <param name="height"></param>
        /// <param name="scale">Crop:取中间部分;Fit:按比例缩放,自动调整尺寸;Pad:按比例缩放,保持尺寸,不足部分填白</param>
        /// <param name="position">水印位置</param>
        /// <param name="waterMarkingPath">水印图片路劲</param>
        public void MakeThumbnail(string originalImagePath, string thumbnailPath, string extName, int width, int height, ThumbnailMethod scale = ThumbnailMethod.Fit, WaterMarkingPosition?position = null, string waterMarkingPath = "")
        {
            if (!File.Exists(originalImagePath))
            {
                return;
            }
            var image = new KalikoImage(originalImagePath)
            {
                BackgroundColor = Color.White
            };
            var         format      = GetImageFormat(extName);
            ScalingBase scalingBase = null;

            switch (scale)
            {
            case ThumbnailMethod.Crop:
                scalingBase = new CropScaling(width, height);
                break;

            case ThumbnailMethod.Fit:
                scalingBase = new FitScaling(width, height);
                break;

            case ThumbnailMethod.Pad:
                scalingBase = new PadScaling(width, height);
                break;

            default:
                scalingBase = new CropScaling(width, height);
                break;
            }
            var imageThumb = image.Scale(scalingBase);

            AddWaterMarking(position, waterMarkingPath, imageThumb);
            imageThumb.SaveImage(thumbnailPath, format);
            image.Dispose();
            imageThumb.Dispose();
        }
        public KalikoImage GetThumbnailImage(int width, int height, ThumbnailMethod method) {
            ScalingBase scaleEngine;

            switch (method) {
                case ThumbnailMethod.Fit:
                    scaleEngine = new FitScaling(width, height);
                    break;
                case ThumbnailMethod.Pad:
                    scaleEngine = new PadScaling(width, height);
                    break;
                default:
                    scaleEngine = new CropScaling(width, height);
                    break;
            }

            return Scale(scaleEngine);
        }