Пример #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
        public string Xml(Config config, ImageInfo imageInfo)
        {
            XmlDocument doc = createBaseXmlDocument();
            XmlNode root = doc.DocumentElement;

            if (root == null) return null;

            XmlNode dateStampNode = doc.CreateNode(XmlNodeType.Attribute, "date", null);
            dateStampNode.Value = imageInfo.DateStamp.ToString("s");
            root.Attributes.SetNamedItem(dateStampNode);

            for (int i = 0; i < data.Count; i++)
            {
                Crop crop = (Crop) data[i];
                Preset preset = (Preset) config.presets[i];

                XmlNode newNode = doc.CreateElement("crop");

                XmlNode nameNode = doc.CreateNode(XmlNodeType.Attribute, "name", null);
                nameNode.Value = preset.Name;
                newNode.Attributes.SetNamedItem(nameNode);

                XmlNode xNode = doc.CreateNode(XmlNodeType.Attribute, "x", null);
                xNode.Value = crop.X.ToString();
                newNode.Attributes.SetNamedItem(xNode);

                XmlNode yNode = doc.CreateNode(XmlNodeType.Attribute, "y", null);
                yNode.Value = crop.Y.ToString();
                newNode.Attributes.SetNamedItem(yNode);

                XmlNode x2Node = doc.CreateNode(XmlNodeType.Attribute, "x2", null);
                x2Node.Value = crop.X2.ToString();
                newNode.Attributes.SetNamedItem(x2Node);

                XmlNode y2Node = doc.CreateNode(XmlNodeType.Attribute, "y2", null);
                y2Node.Value = crop.Y2.ToString();
                newNode.Attributes.SetNamedItem(y2Node);

                if (config.GenerateImages)
                {
                    XmlNode urlNode = doc.CreateNode(XmlNodeType.Attribute, "url", null);
                    urlNode.Value = String.Format("{0}/{1}_{2}.jpg",
                                                  imageInfo.RelativePath.Substring(0,
                                                                                   imageInfo.RelativePath.LastIndexOf(
                                                                                       '/')),
                                                  imageInfo.Name,
                                                  preset.Name);
                    newNode.Attributes.SetNamedItem(urlNode);
                }

                root.AppendChild(newNode);
            }

            return doc.InnerXml;
        }
Пример #3
0
 public DataEditor(umbraco.interfaces.IData Data, string Configuration)
 {
     data = Data;
     config = new Config(Configuration);
 }
Пример #4
0
        private void LoadData()
        {
            if (!string.IsNullOrEmpty(Configuration))
            {
                Config config = new Config(Configuration);

                if (this.imagePropertyTypePicker.Items.Contains(new ListItem(config.UploadPropertyAlias)))
                {
                    this.imagePropertyTypePicker.SelectedValue = config.UploadPropertyAlias;
                }

                chkGenerateCrops.Checked = config.GenerateImages;
                chkShowLabel.Checked = config.ShowLabel;
                txtQuality.Visible = chkShowLabel.Checked;
                txtQuality.Text = config.Quality.ToString();
                litQuality.Visible = chkShowLabel.Checked;

                foreach (Preset preset in config.presets)
                {
                    slbPresets.Items.Add(
                        new ListItem(
                            getListItemDisplayName(
                                preset.Name,
                                preset.TargetWidth.ToString(),
                                preset.TargetHeight.ToString(),
                                preset.KeepAspect ? "1" : "0",
                                String.Concat(preset.PositionH, preset.PositionV)),
                            String.Format("{0},{1},{2},{3},{4}{5}",
                                          preset.Name,
                                          preset.TargetWidth,
                                          preset.TargetHeight,
                                          preset.KeepAspect ? "1" : "0",
                                          preset.PositionH, preset.PositionV)));
                }
            }
        }
Пример #5
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();
                            }
                        }
                    }
                }
            }
        }