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); } }
/// <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)); }