public static void OverlayImage(string mainImageUrl, string rootImageUrl, string dealerId) { var htmlToImageConverter = new HtmlToImage(); htmlToImageConverter.SerialNumber = ConfigurationManager.AppSettings["PDFSerialNumber"]; // set browser width htmlToImageConverter.BrowserWidth = 300; // set HTML Load timeout htmlToImageConverter.HtmlLoadedTimeout = 2; htmlToImageConverter.TransparentImage = false; System.Drawing.Image imageObject = null; string htmlCode = GenerateHtmlImageCode(mainImageUrl, dealerId); if (!String.IsNullOrEmpty(htmlCode)) { imageObject = htmlToImageConverter.ConvertHtmlToImage(htmlCode, null)[0]; imageObject.Save(rootImageUrl, System.Drawing.Imaging.ImageFormat.Jpeg); } }
public Model_Template model_InsertEmailEelement(Model_Template el) { int ret = 0; DateTime d = DatetimeHelper._UTCNow(); string filename = d.ToString("ddmmyyyyhhmmss") + ".jpg"; using (SqlConnection cn = new SqlConnection(this.ConnectionString)) { SqlCommand cmd = new SqlCommand(@"INSERT INTO Template (EID,CreatedDate,CreateBy,Title,Description,DemoPath,DemoFileName) VALUES(@EID,@CreatedDate,@CreateBy,@Title,@Description,@DemoPath,@DemoFileName) ; SET @TID = SCOPE_IDENTITY(); ", cn); cmd.Parameters.Add("@EID", SqlDbType.NVarChar).Value = el.EID; cmd.Parameters.Add("@CreatedDate", SqlDbType.SmallDateTime).Value = el.CreatedDate; cmd.Parameters.Add("@CreateBy", SqlDbType.NVarChar).Value = el.CreateBy; cmd.Parameters.Add("@Title", SqlDbType.NVarChar).Value = el.Title; cmd.Parameters.Add("@Description", SqlDbType.NVarChar).Value = el.Description; cmd.Parameters.Add("@DemoPath", SqlDbType.NVarChar).Value = AppTools.TemplateMockPath(); cmd.Parameters.Add("@DemoFileName", SqlDbType.NVarChar).Value = filename; cmd.Parameters.Add("@TID", SqlDbType.Int).Direction = ParameterDirection.Output; cn.Open(); if (ExecuteNonQuery(cmd) > 0) { ret = (int)cmd.Parameters["@TID"].Value; // string fullpath = AppTools.TemplateMockPath() + "test.png"; HtmlToImage.ConvertHtmlToImage(AppTools.TemplateMockPath(), filename, el.EL.html); } el.DemoPath = AppTools.TemplateMockPath(); el.DemoFileName = filename; el.TID = ret; } return(el); }
public Model_Template model_UpdateEmailElement(Model_Template el) { using (SqlConnection cn = new SqlConnection(this.ConnectionString)) { SqlCommand cmd = new SqlCommand("UPDATE Template SET Title = @Title WHERE TID=@TID", cn); cmd.Parameters.Add("@TID", SqlDbType.Int).Value = el.TID; cmd.Parameters.Add("@Title", SqlDbType.NVarChar).Value = el.Title; cn.Open(); if (ExecuteNonQuery(cmd) > 0) { HtmlToImage.ConvertHtmlToImage(el.DemoPath, el.DemoFileName, el.EL.html); } } return(el); }
public static MemoryStream OverlayImage(string mainImageUrl, DealerUser user) { var htmlToImageConverter = new HtmlToImage { SerialNumber = ConfigurationManager.AppSettings["PDFSerialNumber"], BrowserWidth = 300, HtmlLoadedTimeout = 2, TransparentImage = false }; var htmlCode = GenerateHtmlImageCode(mainImageUrl, user); if (!String.IsNullOrEmpty(htmlCode)) { System.Drawing.Image imageObject = htmlToImageConverter.ConvertHtmlToImage(htmlCode, null)[0]; var stream = new MemoryStream(); imageObject.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg); stream.Position = 0; return(stream); } return(null); }
public static ImageModel GenerateRunTimeImageBlobByComputerAccount(WhitmanEntepriseMasterVehicleInfo vehicle) { var imageModel = new ImageModel(); WebsitesScreenshot.WebsitesScreenshot _Obj = null; WebsitesScreenshot.WebsitesScreenshot _BottomObj = null; try { if (vehicle.DealerId != 18498) { _Obj = new WebsitesScreenshot.WebsitesScreenshot( System.Configuration.ConfigurationManager.AppSettings["WebScreenShotSerialKey"].ToString (CultureInfo.InvariantCulture)); _BottomObj = new WebsitesScreenshot.WebsitesScreenshot( System.Configuration.ConfigurationManager.AppSettings["WebScreenShotSerialKey"].ToString (CultureInfo.InvariantCulture)); //Dynamic FTP ACCOUNT WebsitesScreenshot.WebsitesScreenshot.Result _Result; WebsitesScreenshot.WebsitesScreenshot.Result _BottomResult; if (vehicle.DealerId == 113738 || vehicle.DealerId == 3738) { var firstImageString = ComputerAccountHelper.GenerateHtmlImageCodeForAudiByComputerAccount( vehicle); _Result = _Obj.CaptureHTML("<html><body>" + firstImageString + "</body></html>"); var secondImageString = ComputerAccountHelper.GenerateHtmlImageCodeForSecondBottomImage( vehicle); if (!String.IsNullOrEmpty(secondImageString)) { _BottomResult = _BottomObj.CaptureHTML("<html><body>" + secondImageString + "</body></html>"); } else { _BottomResult = _BottomObj.CaptureHTML("<html><body>" + firstImageString + "</body></html>"); } } else { var firstImageString = ComputerAccountHelper.GenerateHTMLImageCode( vehicle); _Result = _Obj.CaptureHTML("<html><body>" + firstImageString + "</body></html>"); var secondImageString = ComputerAccountHelper.GenerateHtmlImageCodeForSecondBottomImage( vehicle); if (!String.IsNullOrEmpty(secondImageString)) { _BottomResult = _BottomObj.CaptureHTML("<html><body>" + secondImageString + "</body></html>"); } else { _BottomResult = _BottomObj.CaptureHTML("<html><body>" + firstImageString + "</body></html>"); } } if (_Result == WebsitesScreenshot.WebsitesScreenshot.Result.Captured && _BottomResult == WebsitesScreenshot.WebsitesScreenshot.Result.Captured) { _Obj.ImageFormat = WebsitesScreenshot. WebsitesScreenshot.ImageFormats.JPG; _BottomObj.ImageFormat = WebsitesScreenshot. WebsitesScreenshot.ImageFormats.JPG; _Obj.DelaySeconds = 10; _BottomObj.DelaySeconds = 10; var _Image = _Obj.GetImage(); var _BottomImage = _BottomObj.GetImage(); var stream = new MemoryStream(); var bottomStream = new MemoryStream(); _Image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg); _BottomImage.Save(bottomStream, System.Drawing.Imaging.ImageFormat.Jpeg); var bytes = stream.ToArray(); var bottombytes = bottomStream.ToArray(); imageModel.BottomImage = bottombytes; imageModel.TopImage = bytes; stream.Dispose(); stream.Close(); bottomStream.Dispose(); bottomStream.Close(); _Obj.Dispose(); _BottomObj.Dispose(); } } else { _BottomObj = new WebsitesScreenshot.WebsitesScreenshot( System.Configuration.ConfigurationManager.AppSettings["WebScreenShotSerialKey"].ToString (CultureInfo.InvariantCulture)); WebsitesScreenshot.WebsitesScreenshot.Result _BottomResult; _BottomResult = _BottomObj.CaptureHTML("<html><body>" + ComputerAccountHelper.GenerateHtmlImageCodeForSecondBottomImage( vehicle) + "</body></html>"); if (_BottomResult == WebsitesScreenshot.WebsitesScreenshot.Result.Captured) { _BottomObj.ImageFormat = WebsitesScreenshot. WebsitesScreenshot.ImageFormats.JPG; _BottomObj.DelaySeconds = 5; var _BottomImage = _BottomObj.GetImage(); var htmlToImageConverter = new HtmlToImage(); htmlToImageConverter.SerialNumber = ConfigurationManager.AppSettings["PDFSerialNumber"]; // set browser width htmlToImageConverter.BrowserWidth = 1200; // set HTML Load timeout htmlToImageConverter.HtmlLoadedTimeout = 5; // set whether the resulted image is transparent htmlToImageConverter.TransparentImage = false; System.Drawing.Image imageObject = null; string htmlCode = ComputerAccountHelper.GenerateHtmlImageCodeForCaliforniaBeemerByComputerAccount(vehicle); imageObject = htmlToImageConverter.ConvertHtmlToImage(htmlCode, null)[0]; var stream = new MemoryStream(); var bottomStream = new MemoryStream(); imageObject.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg); _BottomImage.Save(bottomStream, System.Drawing.Imaging.ImageFormat.Jpeg); var bytes = stream.ToArray(); var bottombytes = bottomStream.ToArray(); imageModel.BottomImage = bottombytes; imageModel.TopImage = bytes; stream.Dispose(); stream.Close(); bottomStream.Dispose(); bottomStream.Close(); imageObject.Dispose(); _BottomObj.Dispose(); } } } catch (Exception ex) { imageModel.BottomImage = null; imageModel.TopImage = null; return(imageModel); } return(imageModel); }
public static ImageModel GenerateRunTimePhysicalImageForFullertonAutoSquare(WhitmanEntepriseMasterVehicleInfo vehicle, List <WhitmanEntepriseMasterVehicleInfo> squareRandom) { var imageModel = new ImageModel { PhysicalImageUrl = new List <string>() }; var random = new Random(); string[] carImage = vehicle.CarImageUrl.Split(new string[] { ",", "|" }, StringSplitOptions.RemoveEmptyEntries); var number = random.Next(4, 6); var count = 1; var physicalImagePath = @"C:\ImageWarehouse" + "\\" + vehicle.DealerId + "\\" + vehicle.Vin; try { var dirNormal = new DirectoryInfo(physicalImagePath); if (!dirNormal.Exists) { dirNormal.Create(); } var htmlToImageConverter = new HtmlToImage { SerialNumber = ConfigurationManager.AppSettings["PDFSerialNumber"], BrowserWidth = 570, HtmlLoadedTimeout = 15, TransparentImage = false }; //string square4FilePath = dirNormal + "\\" + vehicle.StockNumber + "-" + (count++); //if (squareRandom.Count >= 4) //{ // var imageObjectSquare = // htmlToImageConverter.ConvertHtmlToImage(ComputerAccountHelper.GenerateHtmlImageCodeSquare4Pictures(squareRandom), null)[0]; // imageObjectSquare.Save(square4FilePath, System.Drawing.Imaging.ImageFormat.Jpeg); //} foreach (string tmp in carImage) { string imageFileName = vehicle.StockNumber + "-" + count; var imageObject = htmlToImageConverter.ConvertHtmlToImage(ComputerAccountHelper.GenerateHtmlImageCodeOverlayForFullerton(vehicle, tmp), null)[0]; string filePath = dirNormal + "\\" + imageFileName + ".jpg"; imageObject.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg); imageModel.PhysicalImageUrl.Add(filePath); count++; break; //if (imageModel.PhysicalImageUrl.Count > number) // break; } foreach (var tmp in squareRandom) { if (!String.IsNullOrEmpty(tmp.CarImageUrl)) { string[] totalImage = tmp.CarImageUrl.Split(new[] { "|", "," }, StringSplitOptions.RemoveEmptyEntries); string imageFileName = vehicle.StockNumber + "-" + count; var imageObject = htmlToImageConverter.ConvertHtmlToImage(ComputerAccountHelper.GenerateHtmlImageCodeOverlayForFullerton(tmp, totalImage[0]), null)[0]; string filePath = dirNormal + "\\" + imageFileName + ".jpg"; imageObject.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg); imageModel.PhysicalImageUrl.Add(filePath); count++; } } //if (squareRandom.Count >= 4) // imageModel.PhysicalImageUrl.Add(square4FilePath); } catch (Exception) { } return(imageModel); }
public static ImageModel GenerateRunTimeImageBlobByComputerAccount(WhitmanEntepriseMasterVehicleInfo vehicle) { var imageModel = new ImageModel(); try { WebsitesScreenshot.WebsitesScreenshot bottomObj = null; if (vehicle.DealerId != 17716 && vehicle.DealerId != 14853) { var _Obj = new WebsitesScreenshot.WebsitesScreenshot( ConfigurationManager.AppSettings["WebScreenShotSerialKey"].ToString (CultureInfo.InvariantCulture)); bottomObj = new WebsitesScreenshot.WebsitesScreenshot( ConfigurationManager.AppSettings["WebScreenShotSerialKey"].ToString (CultureInfo.InvariantCulture)); WebsitesScreenshot.WebsitesScreenshot.Result result; WebsitesScreenshot.WebsitesScreenshot.Result bottomResult; if (vehicle.DealerId == 113738 || vehicle.DealerId == 3738) { var firstImageString = ComputerAccountHelper.GenerateHtmlImageCodeForAudiByComputerAccount( vehicle); result = _Obj.CaptureHTML("<html><body>" + firstImageString + "</body></html>"); var secondImageString = ComputerAccountHelper.GenerateHtmlImageCodeForSecondBottomImage( vehicle); if (!String.IsNullOrEmpty(secondImageString)) { bottomResult = bottomObj.CaptureHTML("<html><body>" + secondImageString + "</body></html>"); } else { bottomResult = bottomObj.CaptureHTML("<html><body>" + firstImageString + "</body></html>"); } } else { var firstImageString = ComputerAccountHelper.GenerateHtmlImageCode( vehicle); result = _Obj.CaptureHTML("<html><body>" + firstImageString + "</body></html>"); var secondImageString = ComputerAccountHelper.GenerateHtmlImageCodeForSecondBottomImage( vehicle); if (!String.IsNullOrEmpty(secondImageString)) { bottomResult = bottomObj.CaptureHTML("<html><body>" + secondImageString + "</body></html>"); } else { bottomResult = bottomObj.CaptureHTML("<html><body>" + firstImageString + "</body></html>"); } } if (result == WebsitesScreenshot.WebsitesScreenshot.Result.Captured && bottomResult == WebsitesScreenshot.WebsitesScreenshot.Result.Captured) { _Obj.ImageFormat = WebsitesScreenshot. WebsitesScreenshot.ImageFormats.JPG; bottomObj.ImageFormat = WebsitesScreenshot. WebsitesScreenshot.ImageFormats.JPG; _Obj.DelaySeconds = 10; bottomObj.DelaySeconds = 10; var _Image = _Obj.GetImage(); var _BottomImage = bottomObj.GetImage(); var stream = new MemoryStream(); var bottomStream = new MemoryStream(); _Image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg); _BottomImage.Save(bottomStream, System.Drawing.Imaging.ImageFormat.Jpeg); var bytes = stream.ToArray(); var bottombytes = bottomStream.ToArray(); imageModel.BottomImage = bottombytes; imageModel.TopImage = bytes; stream.Dispose(); stream.Close(); bottomStream.Dispose(); bottomStream.Close(); _Obj.Dispose(); bottomObj.Dispose(); } } else { bottomObj = new WebsitesScreenshot.WebsitesScreenshot( System.Configuration.ConfigurationManager.AppSettings["WebScreenShotSerialKey"].ToString (CultureInfo.InvariantCulture)); WebsitesScreenshot.WebsitesScreenshot.Result _BottomResult; _BottomResult = bottomObj.CaptureHTML("<html><body>" + ComputerAccountHelper.GenerateHtmlImageCodeForSecondBottomImage( vehicle) + "</body></html>"); if (_BottomResult == WebsitesScreenshot.WebsitesScreenshot.Result.Captured) { bottomObj.ImageFormat = WebsitesScreenshot. WebsitesScreenshot.ImageFormats.JPG; bottomObj.DelaySeconds = 5; var bottomImage = bottomObj.GetImage(); var htmlToImageConverter = new HtmlToImage(); htmlToImageConverter.SerialNumber = ConfigurationManager.AppSettings["PDFSerialNumber"]; // set browser width htmlToImageConverter.BrowserWidth = 1200; // set HTML Load timeout htmlToImageConverter.HtmlLoadedTimeout = 5; // set whether the resulted image is transparent htmlToImageConverter.TransparentImage = false; System.Drawing.Image imageObject = null; string htmlCode = ComputerAccountHelper.GenerateHtmlImageCodeForCaliforniaBeemerByComputerAccount(vehicle); imageObject = htmlToImageConverter.ConvertHtmlToImage(htmlCode, null)[0]; var stream = new MemoryStream(); var bottomStream = new MemoryStream(); imageObject.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg); bottomImage.Save(bottomStream, System.Drawing.Imaging.ImageFormat.Jpeg); var bytes = stream.ToArray(); var bottombytes = bottomStream.ToArray(); imageModel.BottomImage = bottombytes; imageModel.TopImage = bytes; stream.Dispose(); stream.Close(); bottomStream.Dispose(); bottomStream.Close(); imageObject.Dispose(); bottomObj.Dispose(); } } } catch (Exception ex) { //string body = "Error = " + ex.Message + ex.Source + ex.InnerException + ex.TargetSite + ex.StackTrace + // "**************************************************************************************" + // _subMasterVehicleList.ElementAt(0).ListingId + "----" + // _subMasterVehicleList.ElementAt(0).DealerId; //if (_subMasterVehicleList.Any()) // _subMasterVehicleList.RemoveAt(0); //timerPostAccount.Enabled = true; //return imageModel; } return(imageModel); }
public ActionResult ConvertToImage(FormCollection collection) { m_formCollection = collection; // create the HTML to Image converter HtmlToImage htmlToImageConverter = new HtmlToImage(); // set a demo serial number htmlToImageConverter.SerialNumber = "YCgJMTAE-BiwJAhIB-EhlWTlBA-UEBRQFBA-U1FOUVJO-WVlZWQ=="; // set browser width htmlToImageConverter.BrowserWidth = int.Parse(collection["textBoxBrowserWidth"]); // set browser height if specified, otherwise use the default if (collection["textBoxBrowserHeight"].Length > 0) { htmlToImageConverter.BrowserHeight = int.Parse(collection["textBoxBrowserHeight"]); } // set HTML Load timeout htmlToImageConverter.HtmlLoadedTimeout = int.Parse(collection["textBoxLoadHtmlTimeout"]); // set whether the resulted image is transparent (has effect only when the output format is PNG) htmlToImageConverter.TransparentImage = (collection["dropDownListImageFormat"] == "PNG") ? collection["checkBoxTransparentImage"] != null : false; // set triggering mode; for WaitTime mode set the wait time before convert switch (collection["dropDownListTriggeringMode"]) { case "Auto": htmlToImageConverter.TriggerMode = ConversionTriggerMode.Auto; break; case "WaitTime": htmlToImageConverter.TriggerMode = ConversionTriggerMode.WaitTime; htmlToImageConverter.WaitBeforeConvert = int.Parse(collection["textBoxWaitTime"]); break; case "Manual": htmlToImageConverter.TriggerMode = ConversionTriggerMode.Manual; break; default: htmlToImageConverter.TriggerMode = ConversionTriggerMode.Auto; break; } // convert to image System.Drawing.Image imageObject = null; string imageFormatName = collection["dropDownListImageFormat"].ToLower(); string imageFileName = String.Format("HtmlToImage.{0}", imageFormatName); if (collection["UrlOrHtmlCode"] == "radioButtonConvertUrl") { // convert URL string url = collection["textBoxUrl"]; imageObject = htmlToImageConverter.ConvertUrlToImage(url)[0]; } else { // convert HTML code string htmlCode = collection["textBoxHtmlCode"]; string baseUrl = collection["textBoxBaseUrl"]; imageObject = htmlToImageConverter.ConvertHtmlToImage(htmlCode, baseUrl)[0]; } // get the image buffer in the selected image format byte[] imageBuffer = GetImageBuffer(imageObject); // the image object rturned by converter can be disposed imageObject.Dispose(); // inform the browser about the binary data format string mimeType = imageFormatName == "jpg" ? "jpeg" : imageFormatName; FileResult fileResult = new FileContentResult(imageBuffer, "image/" + mimeType); fileResult.FileDownloadName = imageFileName; return(fileResult); }
protected void buttonConvertToImage_Click(object sender, EventArgs e) { // create the HTML to Image converter HtmlToImage htmlToImageConverter = new HtmlToImage(); // set a demo serial number htmlToImageConverter.SerialNumber = "YCgJMTAE-BiwJAhIB-EhlWTlBA-UEBRQFBA-U1FOUVJO-WVlZWQ=="; // set browser width htmlToImageConverter.BrowserWidth = int.Parse(textBoxBrowserWidth.Text); // set browser height if specified, otherwise use the default if (textBoxBrowserHeight.Text.Length > 0) { htmlToImageConverter.BrowserHeight = int.Parse(textBoxBrowserHeight.Text); } // set HTML Load timeout htmlToImageConverter.HtmlLoadedTimeout = int.Parse(textBoxLoadHtmlTimeout.Text); // set whether the resulted image is transparent (has effect only when the output format is PNG) htmlToImageConverter.TransparentImage = (dropDownListImageFormat.SelectedValue == "PNG") ? checkBoxTransparentImage.Checked : false; // set triggering mode; for WaitTime mode set the wait time before convert switch (dropDownListTriggeringMode.SelectedValue) { case "Auto": htmlToImageConverter.TriggerMode = ConversionTriggerMode.Auto; break; case "WaitTime": htmlToImageConverter.TriggerMode = ConversionTriggerMode.WaitTime; htmlToImageConverter.WaitBeforeConvert = int.Parse(textBoxWaitTime.Text); break; case "Manual": htmlToImageConverter.TriggerMode = ConversionTriggerMode.Manual; break; default: htmlToImageConverter.TriggerMode = ConversionTriggerMode.Auto; break; } // convert to image System.Drawing.Image imageObject = null; string imageFormatName = dropDownListImageFormat.SelectedValue.ToLower(); string imageFileName = String.Format("HtmlToImage.{0}", imageFormatName); if (radioButtonConvertUrl.Checked) { // convert URL string url = textBoxUrl.Text; imageObject = htmlToImageConverter.ConvertUrlToImage(url)[0]; } else { // convert HTML code string htmlCode = textBoxHtmlCode.Text; string baseUrl = textBoxBaseUrl.Text; imageObject = htmlToImageConverter.ConvertHtmlToImage(htmlCode, baseUrl)[0]; } // get the image buffer in the selected image format byte[] imageBuffer = GetImageBuffer(imageObject); // the image object rturned by converter can be disposed imageObject.Dispose(); // inform the browser about the binary data format string mimeType = imageFormatName == "jpg" ? "jpeg" : imageFormatName; HttpContext.Current.Response.AddHeader("Content-Type", "image/" + mimeType); // let the browser know how to open the image and the image name HttpContext.Current.Response.AddHeader("Content-Disposition", String.Format("attachment; filename={0}; size={1}", imageFileName, imageBuffer.Length.ToString())); // write the image buffer to HTTP response HttpContext.Current.Response.BinaryWrite(imageBuffer); // call End() method of HTTP response to stop ASP.NET page processing HttpContext.Current.Response.End(); }