Beispiel #1
0
        public static Size CalculateNewSize(object source, ResizeSettings settings)
        {
            if (source == null)
            {
                throw new ArgumentNullException("sourse");
            }

            if (source is Image || source is Bitmap)
            {
                return(CalculateNewSize(source as Image, settings));
            }

            Bitmap bitmap = null;

            try
            {
                bitmap = ImageBuilder.LoadImage(source);
                Size newSize = CalculateNewSize(bitmap as Image, settings);
                return(newSize);
            }
            finally {
                if (bitmap != null)
                {
                    bitmap.Dispose();
                }
            }
        }
Beispiel #2
0
        public void SaveAs(Stream stream, ImageFormat imageFormat)
        {
            if (imageFormat == null)
            {
                throw new ArgumentNullException("ImageFormat");
            }

            Bitmap bitmap = GetFinalBitmapForSave();

            if (ImageFormat.Jpeg.Equals(imageFormat))
            {
                if (imageFormat.Equals(bitmap.RawFormat))
                {
                    this.SaveAs(stream, imageFormat, 100);
                }
                else
                {
                    this.SaveAs(stream, imageFormat, 90);
                }
            }
            else
            {
                ImageBuilder.SaveImage(bitmap, stream, imageFormat, 100);
            }
        }
Beispiel #3
0
        public void SaveAs(Stream stream, ImageFormat imageFormat, int jpegQuality)
        {
            if (stream == null)
            {
                throw new ArgumentNullException("stream");
            }

            if (imageFormat == null)
            {
                throw new ArgumentNullException("ImageFormat");
            }

            if (jpegQuality < 10 || jpegQuality > 100)
            {
                throw new ArgumentException("Качество изображения может быть в диапазоне 10 - 100");
            }

            Bitmap bitmap = GetFinalBitmapForSave();

            ImageBuilder.SaveImage(bitmap, stream, imageFormat, jpegQuality);
        }
Beispiel #4
0
        public void SaveAs(string fileName, ImageFormat imageFormat, int jpegQuality)
        {
            if (string.IsNullOrEmpty(fileName))
            {
                throw new ArgumentNullException("FileName");
            }

            if (imageFormat == null)
            {
                throw new ArgumentNullException("ImageFormat");
            }

            if (jpegQuality < 10 || jpegQuality > 100)
            {
                throw new ArgumentException("Качество изображения может быть в диапазоне 10 - 100");
            }

            Bitmap bitmap = GetFinalBitmapForSave();

            ImageBuilder.SaveImage(bitmap, fileName, imageFormat, jpegQuality);
        }
        public static void ProcessImage(IEnumerable<IPlugin> extensions, object source, object target = null, ResizeSettings resizeSettings = null)
        {
            resizeSettings = resizeSettings ?? new ResizeSettings() {};

            target = target ?? new MemoryStream();

            var builderConfig = new ImageResizer.Configuration.Config();

            foreach (var extension in extensions)
                extension.Install(builderConfig);

            var imageBuilder = new ImageBuilder(builderConfig.Plugins.ImageBuilderExtensions, builderConfig.Plugins,
                builderConfig.Pipeline, builderConfig.Pipeline);

            Console.WriteLine("processing " + source);
            if (source is string && source.ToString().StartsWith("http"))
            {
                source = new MemoryStream(new WebClient().DownloadData(source.ToString()));
            }

            imageBuilder.Build(source, target, resizeSettings, false);
        }
Beispiel #6
0
        /// <summary>
        /// Создает экземпляр ImageInfo
        /// </summary>
        /// <param name="source">"Источник может быть Uri, String, Bitmap, Image, Stream, byte[]"</param>
        /// <returns></returns>
        public static ImageInfo Build(object source)
        {
            Bitmap bitmap = ImageBuilder.LoadImage(source);

            return(new ImageInfo(bitmap));
        }