/// <summary> /// Navigate and return image cropped /// </summary> /// <param name="imgData">image object data</param> /// <returns>Web page image cropped.</returns> public static Bitmap GetWebsiteImage(ImageCropData imgData, string serverpath) { var width = imgData.Width; var height = imgData.Height; var y = imgData.Y; var x = imgData.X; Bitmap img = ImageUtil.GetWebSiteScreenCapture(imgData.Url, imgData.ContainerWidth, height, (int)y);//, 1024, 768); /*string imgPath = serverpath + "\\img_raw.jpg"; try { img.Save(imgPath); //b = true; } catch (Exception ex) { //lblMsg.Text = "The image can not be loaded, please try again in a few moments."; img.Dispose(); } */ Rectangle rect = new Rectangle { Width = (int)width, Height = (int)height }; img = cropAtRect(img, rect, x, y); return img; }
/// <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); } }