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); } }
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); }