public static string CropImage(float x, float y, float width, float height, string url, float containerWidth) { var imageId = Guid.NewGuid().ToString(); imageId = Regex.Replace(imageId, "-", string.Empty, RegexOptions.IgnoreCase); var currentUrl = HttpContext.Current.Request.Url; //string urlGenerated = currentUrl.Scheme + "://"+ currentUrl.Authority + "/" + imageId; string urlGenerated = "http://localhost:1979/" + imageId; using (ImageDBActions newImgToDB = new ImageDBActions()) { var imgData = new ImageCropData { ImageID = imageId, X = x, Y = y, Url = url, Width = (int)width, Height = (int)height, ContainerWidth = (int)containerWidth }; newImgToDB.AddDataToDB(imgData); } return urlGenerated; }
/// <summary> /// Return an image from the imageID param in RouteData value /// </summary> /// <param name="context">App Context</param> public void ProcessRequest(HttpContext context) { var imageId = RequestContext.RouteData.Values["imageID"]; var hasContent = imageId == null ? false : true; if(hasContent) { ImageCropData imgData = new ImageCropData(); using (ImageDBActions readImgFromDB = new ImageDBActions()) { imgData = readImgFromDB.GetImageData(imageId.ToString()); } string serverpath = RequestContext.HttpContext.Server.MapPath("Content/Images/Screenshots"); var image = ImageRenderMethods.GetWebsiteImage(imgData, serverpath); ImageConverter converter = new ImageConverter(); byte[] buffer = (byte[])converter.ConvertTo(image, typeof(byte[])); //string imagePath = "~/Content/Images/Screenshots/" + imageId + ".jpg"; context.Response.ContentType = "image/jpg"; context.Response.BinaryWrite(buffer); context.Response.Flush(); image.Dispose(); //context.Response.WriteFile(imagePath); } }