コード例 #1
0
        public override Image Apply(Image image)
        {
            GetParams(fm);

            if (!(image is Image))
            {
                return(image);
            }

            Rectangle region = new Rectangle(0, 0, ImgSrc.Width, ImgSrc.Height);

            if (Params.ContainsKey("CropRegion"))
            {
                region = (Rectangle)Params["CropRegion"].Value;
            }

            if (Params.ContainsKey("CropSide"))
            {
                var side = (SideType)Params["CropSide"].Value;
                region = Rectangle.Round(AddinUtils.AdjustRegion(region, ImgSrc, side));
            }

            if (region.Width > 0 && region.Height > 0)
            {
                Accord.Imaging.Filters.Crop filter = new Accord.Imaging.Filters.Crop(region);
                Bitmap dst = filter.Apply(AddinUtils.CloneImage(ImgSrc) as Bitmap);
                AddinUtils.CloneExif(ImgSrc, dst);
                return(dst);
            }
            else
            {
                return(ImgSrc);
            }
        }
コード例 #2
0
ファイル: Crop.cs プロジェクト: rpazvi/ImageSharp360
        /// <summary>
        /// Realiza el proceso de corte de un bitmap dado.
        /// </summary>
        /// <param name="image">Bitmap</param>
        /// <param name="x">Indice de inicio X</param>
        /// <param name="y">Indice de inicio Y</param>
        /// <param name="width">Ancho a recortar</param>
        /// <param name="height">Alto a recortar</param>
        /// <returns></returns>
        public static Bitmap Apply(AbstractBitmap image, int x, int y, int width, int height)
        {
            Accord.Imaging.Filters.Crop crop = new Accord.Imaging.Filters.Crop(new Rectangle(x, y, width, height));

            return(crop.Apply(image._image));
        }