예제 #1
0
        /// <summary>
        /// Metoda zmieniająca rozmiar obrazka
        /// </summary>
        /// <param name="width">Szerokość po zmianie</param>
        /// <param name="height">Wysokość po zmianie</param>
        /// <param name="imageBytes">Aktualny obrazek w postaci binarnej</param>
        /// <param name="createThumbnail">Czy utworzyć miniaturkę obrazka</param>
        public static ResizeImageResult ResizeImage(int width, int height, byte[] imageBytes, bool createThumbnail = true)
        {
            var resizeResult = new ResizeImageResult();

            // Utwórz obiekt Image z tablicy bajtów
            var img = Image.FromStream(new MemoryStream(imageBytes));

            // Utwórz bitmapę o nowych rozmiarach
            var b = new Bitmap(img, new Size(width, height));

            if (createThumbnail)
            {
                // Wygeneruj miniaturkę obrazka o zadnych rozmiarach
                var thumbnail = img.GetThumbnailImage(ThumbnailSize, ThumbnailSize, ThumbnailCallback, IntPtr.Zero);

                // Przekonwertuj miniaturkę obrazka do postaci binarnej
                var ms = new MemoryStream();
                thumbnail.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
                resizeResult.Thumbnail = ms.ToArray();
            }

            // Przeskaluj oryginalny obrazek do nowych rozmiarów
            var converter = new ImageConverter();

            imageBytes = (byte[])converter.ConvertTo(b, typeof(byte[]));
            resizeResult.ResizedImage = imageBytes;

            return(resizeResult);
        }
예제 #2
0
        /// <summary>
        /// Resize image
        /// </summary>
        /// <param name="target">Target</param>
        /// <param name="width">Width</param>
        /// <param name="height">Height</param>
        /// <returns>Response result</returns>
        ResizeImageResult IConnectorDriver.Resize(string target, int width, int height)
        {
            // Parse target file path
            var path = ParseFilePath(target);

            // Remove thumbnails
            path.RemoveThumbs();

            // Initialize the ImageFactory using the overload to preserve EXIF metadata.
            using (var imageFactory = new ImageFactory())
            {
                // Load, resize and save an image.
                imageFactory.Load(path.Info.FullName)
                .Resize(new Size(width, height))
                .Save(path.Info.FullName);
            }

            // Create command result
            var commandResult = new ResizeImageResult();

            // Add image to changed items
            commandResult.Changed.Add(ImageEntryObjectModel.Create(path.File, path.Root));

            // Return result
            return(commandResult);
        }