public static void Run()
        {
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_PSD();

            //ExStart:GradientFillLayers

            string fileName = dataDir + "FillLayerGradient.psd";

            GradientType[] gradientTypes = new[]
            {
                GradientType.Linear, GradientType.Radial, GradientType.Angle, GradientType.Reflected, GradientType.Diamond
            };
            using (var image = Image.Load(fileName))
            {
                PsdImage             psdImage     = (PsdImage)image;
                FillLayer            fillLayer    = (FillLayer)psdImage.Layers[0];
                GradientFillSettings fillSettings = (GradientFillSettings)fillLayer.FillSettings;
                foreach (var gradientType in gradientTypes)
                {
                    fillSettings.GradientType = gradientType;
                    fillLayer.Update();
                    psdImage.Save(fileName + "_" + gradientType.ToString() + ".png", new PngOptions()
                    {
                        ColorType = PngColorType.TruecolorWithAlpha
                    });
                }
            }

            //ExEnd:GradientFillLayers
        }
        public static void Run()
        {
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_PSD();

            //ExStart:SupportOfScaleProperty

            using (var image = (PsdImage)Image.Load(dataDir + "FillLayerGradient.psd"))
            {
                // getting a fill layer
                FillLayer fillLayer = null;
                foreach (var layer in image.Layers)
                {
                    fillLayer = layer as FillLayer;
                    if (fillLayer != null)
                    {
                        break;
                    }
                }

                var settings = fillLayer.FillSettings as IGradientFillSettings;

                // update scale value
                settings.Scale = 200;
                fillLayer.Update(); // Updates pixels data

                image.Save(dataDir + "scaledImage.png", new PngOptions()
                {
                    ColorType = PngColorType.TruecolorWithAlpha
                });
            }


            //ExEnd:SupportOfScaleProperty
        }
Exemple #3
0
        public static void Run()
        {
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_PSD();

            //ExStart:PatternFillLayer

            // Add support of Fill layers: Pattern
            string sourceFileName = dataDir + "PatternFillLayer.psd";
            string exportPath     = dataDir + "PatternFillLayer_Edited.psd";
            double tolerance      = 0.0001;
            var    im             = (PsdImage)Image.Load(sourceFileName);

            using (im)
            {
                foreach (var layer in im.Layers)
                {
                    if (layer is FillLayer)
                    {
                        FillLayer           fillLayer    = (FillLayer)layer;
                        PatternFillSettings fillSettings = (PatternFillSettings)fillLayer.FillSettings;
                        if (fillSettings.HorizontalOffset != -46 ||
                            fillSettings.VerticalOffset != -45 ||
                            fillSettings.PatternId != "a6818df2-7532-494e-9615-8fdd6b7f38e5" ||
                            fillSettings.PatternName != "$$$/Presets/Patterns/OpticalSquares=Optical Squares" ||
                            fillSettings.AlignWithLayer != true ||
                            fillSettings.Linked != true ||
                            fillSettings.PatternHeight != 64 ||
                            fillSettings.PatternWidth != 64 ||
                            fillSettings.PatternData.Length != 4096 ||
                            Math.Abs(fillSettings.Scale - 50) > tolerance)
                        {
                            throw new Exception("PSD Image was read wrong");
                        }
                        // Editing
                        fillSettings.Scale            = 300;
                        fillSettings.HorizontalOffset = 2;
                        fillSettings.VerticalOffset   = -20;
                        fillSettings.PatternData      = new int[]
                        {
                            Color.Red.ToArgb(), Color.Blue.ToArgb(), Color.Blue.ToArgb(),
                                                Color.Blue.ToArgb(), Color.Red.ToArgb(), Color.Blue.ToArgb(),
                                                Color.Blue.ToArgb(), Color.Blue.ToArgb(), Color.Red.ToArgb()
                        };
                        fillSettings.PatternHeight  = 3;
                        fillSettings.PatternWidth   = 3;
                        fillSettings.AlignWithLayer = false;
                        fillSettings.Linked         = false;
                        fillSettings.PatternId      = Guid.NewGuid().ToString();
                        fillLayer.Update();
                        break;
                    }
                }
                im.Save(exportPath);
            }

            //ExEnd:PatternFillLayer
        }