Пример #1
0
        public void Import(string filename, Gtk.Window parent)
        {
            FileStream stream = new FileStream(filename, FileMode.Open, FileAccess.Read);

            pdn.Document loaded = PaintDotNetFileLoader.FromStream((stream));


            // Create a new document and add an initial layer.
            Pinta.Core.Document doc = PintaCore.Workspace.CreateAndActivateDocument(filename, new Gdk.Size(loaded.Width, loaded.Height));
            doc.HasFile = true;
            doc.Workspace.CanvasSize = doc.ImageSize;

            int index = 0;

            foreach (BitmapLayer l in loaded.Layers)
            {
                UserLayer layer = doc.CreateLayer(l.Name, l.Width, l.Height);
                doc.Insert(layer, index++);

                layer.Hidden    = !l.Visible;                          // pdn stores visible, not hidden
                layer.BlendMode = ConvertBlendMode(l.BlendMode);
                layer.Opacity   = Convert.ToDouble(l.Opacity) / 255.0; // pdn stores opacity with 255 as max

                // Copy over the image data to the layer's surface.
                CopyToSurface(l.Surface.Data.Buffer, layer.Surface);
            }
        }
Пример #2
0
        public Gdk.Pixbuf LoadThumbnail(string filename, int maxWidth, int maxHeight, Gtk.Window parent)
        {
            FileStream stream = new FileStream(filename, FileMode.Open, FileAccess.Read);

            Pixbuf pb = null;

            byte[] data = PaintDotNetFileLoader.GetThumbnailData(stream);

            if (data != null)
            {
                pb = new Pixbuf(data);
            }
            return(pb);
        }