Esempio n. 1
0
        public override bool Execute()
        {
            // Look for script-fu-selection-to-pattern as example. The basic idea
              // is to create a new image and save it as a .pat file

              var selection = ActiveImage.Selection;
              bool nonEmpty;
              var bounds = selection.Bounds(out nonEmpty);
              int width = bounds.Width;
              int height = bounds.Height;

              var image = new Image(width, height, ActiveImage.BaseType);
              var layer = new Layer(image, "test", width, height,
                ImageType.Rgb, 100,
                LayerModeEffects.Normal);
              image.InsertLayer(layer, 0);
              Console.WriteLine("{0} {1}", image.Width, image.Height);

              ActiveDrawable.EditCopy();
              layer.EditPaste(true);

              string filename = Gimp.Directory + System.IO.Path.DirectorySeparatorChar
            + "patterns" + System.IO.Path.DirectorySeparatorChar +
            _name + ".pat";

              image.Save(RunMode.Noninteractive, filename, filename);

              // Fix me: next lines should work so we can actually set the name
              // of the pattern!
              // Procedure procedure = new Procedure("file_pat_save");
              // procedure.Run(image, layer, filename, filename, _name);

              image.Delete();
              PatternList.Refresh();

              return false;
        }
Esempio n. 2
0
        Layer AddLayer(Image image, int layerNr, string name, 
		   string translate_x, string translate_y, 
		   out PixelRgn destPR)
        {
            destPR = null;
              int keepLayer = GetValue<int>("keep_layer");
              if (keepLayer == 0 || keepLayer == layerNr)
            {
              var layer = new Layer(image, name, ImageType.Rgba);
              layer.Translate(GetValue<int>(translate_x), GetValue<int>(translate_y));
              layer.AddAlpha();
              image.InsertLayer(layer, 0);

              destPR = new PixelRgn(layer, image.Bounds, true, false);
              return layer;
            }
              return null;
        }
Esempio n. 3
0
        public override bool Execute()
        {
            ImageBaseType type = ImageBaseType.Rgb;	// Fix me!

              switch (_mode.Value)
            {
            case "Grys":
              type = ImageBaseType.Gray;
              break;
            default:
              Console.WriteLine("Type: " + _mode.Value);
              type = ImageBaseType.Rgb;
              break;
            }

              int width = (int) (Parameters["Wdth"] as DoubleParameter).GetPixels(0);
              int height = (int) (Parameters["Hght"] as DoubleParameter).GetPixels(0);

              ImageType imageType;
              FillType fillType;

              switch (_fill.Value)
            {
            case "Trns":
              imageType = (type == ImageBaseType.Gray)
            ? ImageType.Graya : ImageType.Rgba;
              fillType = FillType.Transparent;
              break;
            default:
              imageType = (type == ImageBaseType.Gray)
            ? ImageType.Gray : ImageType.Rgb;
              fillType = FillType.White;
              break;
            }

              var image = new Image(width, height, type);
              var layer = new Layer(image, "Layer 1", width, height, imageType);
              image.InsertLayer(layer, 0);

              layer.Fill(fillType);

              ActiveImage = image;
              ActiveDrawable = layer;

              new Display(image);

              return true;
        }