Esempio n. 1
0
        public Bitmap CropImage(Image im, CropPixels rect)
        {
            Bitmap image = new Bitmap((int)rect.W, (int)rect.H);

            using (Graphics gr = Graphics.FromImage(image))
            {
                gr.CompositingQuality = CompositingQuality.HighSpeed;
                gr.InterpolationMode  = InterpolationMode.HighQualityBicubic;
                gr.CompositingMode    = CompositingMode.SourceCopy;
                float start = rect.X < 0 ? 0 : rect.X;

                gr.FillRectangle(Brushes.White, 0, 0, image.Width, image.Height);
                gr.DrawImage(im,
                             new RectangleF(0, 0, image.Width, image.Height),
                             new RectangleF(start, rect.Y, rect.W - start, rect.H),
                             GraphicsUnit.Pixel
                             );
            }

            return(image);
        }
Esempio n. 2
0
        public string StoreThumb(string filePath, CropPixels rect, ThumbSize size, string extension = null)
        {
            int maxWidth  = (int)size;
            int maxHeight = (int)size;

            FileInfo inf      = new FileInfo(filePath);
            string   fileName = FileUtils.GetThumbPath(filePath, size, extension);
            string   newPath  = Path.Combine(inf.Directory.FullName, fileName);

            Utils.CreateFolderForFile(newPath);

            Bitmap image   = new Bitmap(maxWidth, maxHeight);
            Image  im      = Image.FromFile(filePath);
            Bitmap cropped = CropImage(im, rect);

            float ratio = image.Width / rect.W;

            using (Graphics gr = Graphics.FromImage(image))
            {
                gr.FillRectangle(Brushes.White, 0, 0, maxWidth, maxHeight);

                float start = rect.X < 0 ? (rect.X * -1 * ratio) : 0;

                gr.CompositingQuality = CompositingQuality.HighSpeed;
                gr.InterpolationMode  = InterpolationMode.HighQualityBicubic;
                gr.CompositingMode    = CompositingMode.SourceCopy;
                gr.DrawImage(cropped, start, 0, image.Width, image.Height);
            }
            if (File.Exists(newPath))
            {
                File.Delete(newPath);
            }
            image.Save(newPath, ImageFormat.Png);
            string th = FileUtils.GetThumbUrl(filePath, size);

            return(th);
        }