Пример #1
0
        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.");
                }
            }
        }
Пример #2
0
 /// <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);
     }
 }
Пример #3
0
        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();
                            }
                        }
                    }
                }
            }
        }