public void GenerateThumbnails(SaveData saveData, Config config) { if (config.GenerateImages) { for (int i = 0; i < config.presets.Count; i++) { Crop crop = (Crop) saveData.data[i]; Preset preset = (Preset) config.presets[i]; // Crop rectangle bigger than actual image if(crop.X2 - crop.X > Width || crop.Y2 - crop.Y > Height) { crop = preset.Fit(this); } ImageTransform.Execute( Path, String.Format("{0}_{1}", Name, preset.Name), crop.X, crop.Y, crop.X2 - crop.X, crop.Y2 - crop.Y, preset.TargetWidth, preset.TargetHeight, config.Quality ); //BasePage bp = new BasePage(); //bp.speechBubble(BasePage.speechBubbleIcon.error, "Error", // "One or more crops are out of bounds. Please correct and try again."); } } }
/// <summary> /// Store data as string XML (overridden by ToXMl to store "real" XML /// XML format: /// <crops dateStamp=""> /// <crop name="" x="" y="" x2="" y2="" url="" /> /// </crops> /// </summary> public void Save() { ImageInfo imageInfo = new ImageInfo(imgImage.ImageUrl); if (!imageInfo.Exists) { data.Value = ""; } else { SaveData saveData = new SaveData(hdnRaw.Value); data.Value = saveData.Xml(config, imageInfo); imageInfo.GenerateThumbnails(saveData, config); } }
void _generateButton_Click(object sender, EventArgs e) { Config config = new Config(Configuration); // get list of nodeids with this datatype using (IRecordsReader rdr = SqlHelper.ExecuteReader( "SELECT DISTINCT contentNodeId, " + "(SELECT Alias FROM cmsPropertyType WHERE Id = pd.propertyTypeId) AS propertyAlias " + "FROM cmsPropertyData pd " + "WHERE PropertyTypeId IN (SELECT Id FROM cmsPropertyType WHERE DataTypeId = " + _dataType.DataTypeDefinitionId + ")")) { while (rdr.Read()) { int documentId = rdr.GetInt("contentNodeId"); string propertyAlias = rdr.GetString("propertyAlias"); Document document = new Document(documentId); Property cropProperty = document.getProperty(propertyAlias); Property imageProperty = document.getProperty(config.UploadPropertyAlias); if (cropProperty != null) // && cropProperty.Value.ToString() == "" { ImageInfo imageInfo = new ImageInfo(imageProperty.Value.ToString()); if (imageInfo.Exists) { SaveData saveData = new SaveData(); foreach (Preset preset in config.presets) { Crop crop = preset.Fit(imageInfo); saveData.data.Add(crop); } //cropProperty.Value = saveData.Xml(config, imageInfo); imageInfo.GenerateThumbnails(saveData, config); if (document.Published) { //document.Publish(document.User); //umbraco.library.UpdateDocumentCache(document.Id); } else { //document.Save(); } } } } } }